1

我正在使用 Nokogiri 提取一个返回 Nokogiri::XML::NodeSet 的页面。由此,我想只从偶数节点中提取文本。

doc.search("h2 a").class #=> Nokogiri::XML::NodeSet
doc.search("h2 a").count #=> returns 148

我对0、2、4、8等感兴趣:

doc.search("h2 a")[0].text #=> the one I wanted.
doc.search("h2 a")[2].text #=> the one I wanted.
4

2 回答 2

6

试试下面的:

doc.search("h2 a").map.with_index(0) do |i,nd|
    i.text if nd.even?
end.compact
于 2013-07-12T09:55:37.277 回答
3

也许您想要每个偶数定位的a节点:

doc.search("h2 a:nth-child(even)")

或者您可能正在寻找所有其他节点:

doc.search("h2 a").select.with_index{|a, i| i.even?}
于 2013-07-12T10:56:32.380 回答