[英]Parse XML document in java
我想從給定col_alt
表標簽中找到@name
。 誰能幫我這個忙。 javax.XML.Xpath
是否可能? 如果沒有,您可以建議其他方法來找到它。
這是XML數據的示例:
<?xml version="1.0" encoding="UTF-8"?>
<mapping>
<table name="CLIENT">
<table_column>
<column name="CLIENT_NAME">
<col_alt>CLIENT_NAME</col_alt>
<col_alt>CLIENT NAME</col_alt>
<col_alt>NAME</col_alt>
<col_alt>NAMES</col_alt>
<col_alt>CUST NAME</col_alt>
<col_alt>CUSTOMER NAME</col_alt>
</column>
<column name="CLIENT_ADDRESS">
<col_alt>ADDRESS</col_alt>
<col_alt>LIVES IN</col_alt>
<col_alt>LOCATION</col_alt>
<col_alt>STAY</col_alt>
</column>
<column name="CLIENT_CONTACT_NO">
<col_alt>CONTACT NO</col_alt>
<col_alt>CONTACT</col_alt>
</column>
</table_column>
</table>
<table name="SALES_MASTER">
<table_column>
<column name="SALE_DATE">
<col_alt>SALE DATE</col_alt>
<col_alt>BILL DATE</col_alt>
<col_alt>SALES DATE</col_alt>
</column>
<column name="TOTAL_BILL">
<col_alt>TOTAL BILL</col_alt>
<col_alt>GRAND TOTAL</col_alt>
</column>
</table_column>
</table>
</mapping>
如果我沒有記錯的話,這樣的Xpath表達式應該適合您。 我沒有完整的代碼嘗試一下。
XPathExpression expr = xpath.compile("//table/table_column/column[col_alt='SALE DATE']/@name");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
doc-是xml的文檔參考。
您有XML的架構嗎? 如果可以,您可以檢查JAXB
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.