java - XPath NodeList 命令 (Java)

标签 java xpath nodelist

我有以下 XML 结构。

<?xml version="1.0" encoding="UTF-8"?>
<root> 
  <header> 
    <row> 
      <column n="name" />
      <column n="age" />
      <column n="email" />
    </row> 
  </header>  
  <body> 
    <row> 
      <column>Foo</column>  
      <column>99</column>  
      <column>foo@test.com</column> 
    </row>  
  </body> 
</root>

我正在使用以下 XPath 表达式来获取标题列并同样获取正文列。

PathExpression headerExpr = xPath.compile("/root/header/row/column/@n");
NodeList headerColumns = (NodeList) headerExpr.evaluate(document, XPathConstants.NODESET);
PathExpression bodyExpr = xPath.compile("/root/body/row/column");
NodeList bodyColumns = (NodeList) bodyExpr.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < headerColumns.getLength(); i++) {
                System.out.println((Attr) headerColumns .item(i)).getValue() + ": " + bodyColumns.item(i).getTextContent());
        }

我是否可以假设 XPath 总是以相同的顺序返回标题和正文列,以便它们始终匹配?或者我什至可以假设列总是按文档顺序返回吗?

最佳答案

使用 XPath 时文档顺序始终保留,这里有一些官方供您引用:http://msdn.microsoft.com/en-us/library/ms256090.aspx

关于java - XPath NodeList 命令 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753588/

相关文章:

java - 获取选定 JTable 单元格的位置?

XPATH 多元素过滤器

javascript - 如何在for循环中获取第一个子节点

xml - 具有默认命名空间的 XML 文件上的 XSLT。带有 'artificial' 前缀的 Xpath

java - 我如何从 NodeList 转换为 Array 并在其他类中使用此 Array?

java - 使用 Dom 解析器加载 XML 文件时出现问题

java - 在 JUnit4 中添加测试到 TestSuite

java - 如何从 Robert Sedgewick 的算法教科书中运行 Java 程序?

java - 如果数组(列表)包含自身,会发生什么不好的事情吗?

java - 使用 xpath 从 xml/rdf 文档检索元素数据