一行nokogiri xpath查找



当我用查找xpath时

b.xpath("td[@class='team']/img").each do |d|
  puts d['id']
end

元素"d"是一个html节点。我可以在里面引用属性。

但是,当我试图在一行中查找同一个元素时,它会作为字符串返回。

c = b.xpath("td[@class='team']/img")[0]

数组中只有一个元素I,我不需要循环通过任何.each。有没有办法把这一行写出来?

这是我做的一个测试:

html = '<div id="foo">bar</div>'
b = Nokogiri::HTML.fragment(html)
b.xpath(".//div").each do |d|
  puts d.class
  puts d['id']
end
c = b.xpath(".//div")[0]
puts c.class
puts c['id']

正如您所期望的,结果输出为:

Nokogiri::XML::Element
foo
Nokogiri::XML::Element
foo

因此,这两种方法实际上都返回了Nokogiri::XML::Element类型的对象。

我最终做了这样的事情:

t = a.xpath("tr/td[@class='team']/img")
away = t[0]['id']
home = t[1]['id']

相关内容

  • 没有找到相关文章

最新更新