java - 选择给定节点下某种类型的所有节点

标签 java xpath

我是 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 返回,即使我传递的是节点而不是整个文档。

最佳答案

Returns all bar nodes of the whole document, not from the fooNode even though i passed the node and not the whole document.

这是 absolute location path 的预期行为作为//bar。使用相对位置路径作为 .//bardescendant-or-self::bardescendant::bar

关于java - 选择给定节点下某种类型的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55720722/

相关文章:

java - Java StringTokenizer.countTokens() 的时间复杂度是多少

java - libjvm.so 中的 SIGSEGV Java fatal error 导致 JVM 频繁崩溃

xml - 如何在xslt中检查当前节点的父节点是否为根节点?

xpath - 如何使用XPath获取YouTube标题

XPath以选择1个元素(如果存在两个元素之一)

java - 带有分隔符 "\\Z"的扫描器在第一次调用时没有下一个元素

java - 如何使用Java 'Runtime.getRuntime().exec'命令阻止cmd退出

java - 我可以从 Groovy 调用 Scala 动态函数吗?

xml - 节点之间的 xPath

python-3.x - 获取美国标题标签文本