0

我有 xml 级别的节点,例如:

<matrix1>
  <row1>
    <column>679</column>
    <column>9</column>
  </row2>
  <row2>
    <column>78</column>
    <column>29</column>
  </row2>
<matrix1> 

我在这里看到了很多类似的东西,但不是像这样更高级的子节点,我可以在解析过程之后在 DOM 中跳过父节点直接访问<column>679</column>吗?或将每个级别迭代到最低的孩子以获得数值?感谢您抽出宝贵时间提供帮助。

4

1 回答 1

0

XPath表达式可能是您在这里需要的。您可以选择文档中的列节点,无论它们在何处使用此模式:

//column

这是一个工作片段:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(____your XML InputStream____);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//column");
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);

检查Java XPath API以获取更多信息。

您还应该检查 XML 输入的语法。matrix1 和 row1 没有结束标记,这是更正后的 XML:

<matrix1>
    <row1>
        <column>679</column>
        <column>9</column>
    </row1>
    <row2>
        <column>78</column>
        <column>29</column>
    </row2>
</matrix1>
于 2012-08-05T10:34:06.187 回答