Ruby 使用XPath选择匹配表达式的根和子级
我使用Nokogiri解析一些XML,看起来有点像:Ruby 使用XPath选择匹配表达式的根和子级,ruby,xml,xpath,nokogiri,Ruby,Xml,Xpath,Nokogiri,我使用Nokogiri解析一些XML,看起来有点像: <item name="item one"> <other name="other name"/> <third /> </item> <item name="item two"> <other /> <third /> </item> 当我遍历时,我可以使用什么表达式从第一个节点获取[item,other]?开头
<item name="item one">
<other name="other name"/>
<third />
</item>
<item name="item two">
<other />
<third />
</item>
当我遍历时,我可以使用什么表达式从第一个节点获取
[item,other]
?开头的
将使XPath表达式上下文特定,使用@
获取属性,@*
获取所有属性(通配符):
并且,获取当前节点的所有属性以及所有子节点的所有属性:
node.xpath(".//@*")
我不知道它是否适合你,但如果你找到了节点 您可以使用
node.name
获取item
元素,您可以找到所有other
并检查.parent.name==“item”
请参阅此处的更多信息:
有一个表达式可以同时完成两行吗?我想要根目录或任何子目录上的所有属性。如何修改它以仅获取所有“名称”属性(忽略其他属性)?@karl try
/genderant或self::node()/@name
/@name
也可以/
是/genderant或self::node()/
的缩写。请阅读“”。您的XML无效,源代码未运行。不要要求我们编写代码只是为了测试您的代码。
node.xpath(".//*/@*")
node.xpath("@*")
node.xpath(".//@*")