Java 从Nodelist按名称获取节点
我试图通过Java 从Nodelist按名称获取节点,java,xml,dom,Java,Xml,Dom,我试图通过项(I)通过其名称而不是索引获取节点,因为我正在阅读的文档不会每次都将节点放在相同的位置,但节点的名称始终相同。我正在尝试获取节点 到目前为止,我已经: System.out.println("Current Reference: " + configurationDocument.getElementsByTagName("Parent"). item(0).getChildNodes().item(0)); 问题是最后一个项(0)总是获取错误的节点。如何
项(I)
通过其名称而不是索引获取节点,因为我正在阅读的文档不会每次都将节点放在相同的位置,但节点的名称始终相同。我正在尝试获取节点
到目前为止,我已经:
System.out.println("Current Reference: " +
configurationDocument.getElementsByTagName("Parent").
item(0).getChildNodes().item(0));
问题是最后一个项(0)
总是获取错误的节点。如何通过名称(String
)而不是通过int
)获取节点?使用XPath获取感兴趣的节点。大概是这样的:
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression xpr = xpath.compile("//Parent/name-of-item/name-of-item");
System.out.println(xpr.evaluate(configurationDocument, XPathConstants.STRING));
Bummer,这是您的配置文档,更新了答案+1 xPath的良好使用,请注意,它可能比简单地遍历文档要慢:P