当我用
查找xpath时b.xpath("td[@class='team']/img").each do |d|
puts d['id']
end
元素“d”是一个html节点。我可以在其中引用属性。
但是当我尝试在一行中查找相同的元素时,它会以字符串形式返回。
c = b.xpath("td[@class='team']/img")[0]
数组中只有一个元素,我不需要遍历任何.each
。有没有办法让这一行?
答案 0 :(得分:2)
这是我放在一起的测试:
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类型的对象。
答案 1 :(得分:1)
我最终做了这样的事情:
t = a.xpath("tr/td[@class='team']/img")
away = t[0]['id']
home = t[1]['id']