我正在使用 Nokogiri 来解析一些看起来像这样的 XML:
<item name="item one">
<other name="other name"/>
<third />
</item>
<item name="item two">
<other />
<third />
</item>
我正在使用 Nokogiri 解析项目,如下所示:
xmldoc.xpath("//item").each do |node|
node.xpath("//*[@name]") # Gives me *all* elements in the doc
node.xpath(".//*[@name]") # Gives me child elements of the item
end
当我迭代时,我可以使用什么表达式从第一个节点获取[item, other]
?
最佳答案
开头的 .
将使 XPath 表达式特定于上下文,使用 @
获取属性,@*
获取所有属性属性(通配符):
node.xpath(".//*/@*")
node.xpath("@*")
并且,获取当前节点的所有属性以及所有子节点的所有属性:
node.xpath(".//@*")
关于ruby - 使用 XPath 选择根和子匹配表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412067/