Ruby 使用XPath选择匹配表达式的根和子级

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]?开头

我使用Nokogiri解析一些XML,看起来有点像:

<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(".//@*")