如果我有一個Nokogiri :: XML :: Element,我如何計算它的子索引相對於它的父類?那就是:確定一個Nokogiri元素的子索引
<foo> <-- parent
<bar/> <-- 1st child
<bar/> <-- 2nd child
</foo>
在Javascriptland,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
注意,這將在列表中包含文本節點。 – Phrogz
美麗! @Phrogz,指出,但這是平凡的使用element_children而不是(如在你的答案)。 – jpatokal
@jpatokal Yup;儘管不正確,我仍然維持他的答案。 – Phrogz