当我使用
查找 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 类型的对象。
关于xpath - 一行 nokogiri xpath 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6447338/