【问题标题】:xpath getting multiple node values - xml parser using javaxpath获取多个节点值-使用java的xml解析器
【发布时间】:2016-07-20 11:36:22
【问题描述】:

下面是xml文件

<priority-claims>
          <priority-claim sequence="1" kind="national">
            <document-id document-id-type="maindoc">
             <doc-number>FD0297663</doc-number>
             <date>20070403</date>
            </document-id>
          </priority-claim>
          <priority-claim sequence="2" kind="national">
            <document-id document-id-type="maindoc">
              <doc-number>FD0745459P</doc-number>
              <date>20060424</date>
            </document-id>
            </priority-claim>
</priority-claims>

我的预期条件:

1.如何获取所有节点值(即FD0297663, 20070403 and FD0745459P,20060424

2.它可能是单一的(即优先级声明标签)或多个级别是可能的

我现有的代码只获得一级价值

String priorityNumber = xPath.compile("//priority-claim//doc-number").evaluate(xmlDocument);
 String priorityDate = xPath.compile("//priority-claim//date").evaluate(xmlDocument);

【问题讨论】:

    标签: java xml xpath xml-parsing


    【解决方案1】:

    下面是一个工作示例:

    • 更新了 xpath 表达式(例如,/priority-claims/priority-claim/document-id/doc-number/text()
    • 使用NodeList

      NodeList priorityNumbers = (NodeList) xPath.compile("/priority-claims/priority-claim/document-id/doc-number/text()").evaluate(xmlDocument, XPathConstants.NODESET);
      NodeList priorityDates = (NodeList) xPath.compile("/priority-claims/priority-claim/document-id/date/text()").evaluate(xmlDocument,XPathConstants.NODESET);
      
      for(int i=0; i<priorityNumbers.getLength();i++){
          System.out.println(priorityNumbers.item(i).getNodeValue());
      }
      
      for(int i=0; i<priorityDates.getLength();i++){
          System.out.println(priorityDates.item(i).getNodeValue());
      }
      

    这里是一个可运行版本的要点链接:https://gist.github.com/rparree/1c7eb8e9ca928b98418fdb167a2096a3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      相关资源
      最近更新 更多