Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Nodelist按名称获取节点_Java_Xml_Dom - Fatal编程技术网

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