我是XNode的新手,想选择给定节点下所有类型的节点。在下面的示例中,我正在寻找foo节点下面的所有bar节点。
<node>
<foo>
<bar/>
<div><bar/></div>
<ul>
<li><bar/>
</ul>
<p>foobar</p>
</foo>
<bar/>
</node>
我的应用程序获取foo节点(org.w3c.dom.Node):
NodeList nodeList = (NodeList) xpath.evaluate("//bar", fooNode, XPathConstants.NODESET);
即使我通过了该节点而不是整个文档,也返回了整个文档的所有bar节点,而不是从fooNode返回。
答案 0 :(得分:1)
返回整个文档的所有bar节点,甚至不从fooNode返回 虽然我通过了节点而不是整个文档。
这是absolute location path作为//bar
的预期行为。使用相对位置路径作为.//bar
或descendant-or-self::bar
或descendant::bar
答案 1 :(得分:0)
我不确定这是您要找的东西,但是
//foo/descendant-or-self::bar
选择</bar>
中的3个<foo>
。