当我用查找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']