如果我有一个 Nokogiri::XML::Element,如何确定它在父元素中的子级索引?也就是说:
在Javascript世界中,jQuery有index(),但Nokogiri没有。Nokogiri提供了一个path方法,但它返回一个XPath字符串,例如
<foo> <-- parent
<bar/> <-- 1st child
<bar/> <-- 2nd child
</foo>
在Javascript世界中,jQuery有index(),但Nokogiri没有。Nokogiri提供了一个path方法,但它返回一个XPath字符串,例如
"/foo/bar[2]"
,并将bar[1]
截断为bar
,所以将其转换回数字有点麻烦:element.path.split('/').last.slice(/[0-9]+/) || '1' # quick'n'dirty
element.path.split('/').last.slice(/\[([0-9]+)\]/, 1) || '1' # a bit safer