2013-04-04 3 views
0

Я хочу найти @name из тега таблицы из данного col_alt. Может кто-нибудь помочь мне с этим. Возможно ли с javax.XML.Xpath? Если нет, вы можете предложить другим способом найти это.Анализ XML-документа в java

Это пример данных 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> 
+0

Я попытался использовать java.XML.XPath, но не смог этого сделать. – Pankaj

ответ

0

Если я правильно помню 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.

+0

из этого как я могу получить @ имя

tag – Pankaj

+0

Добавлен код, чтобы показать, как вы будете читать свою информацию. Поскольку я не знаю, является ли значение col_alt уникальным, я использовал NodeSet. Если вы знаете, тогда посмотрите на другие варианты в XPathConstants, например String и т. Д. –

+0

Thanx, за ценные советы. – Pankaj

0

У вас есть схема для XML? Если это так, вы можете проверить JAXB

+0

У меня нет схемы. – Pankaj