xpath - 一行 nokogiri xpath 查找

标签 xpath nokogiri

当我使用

查找 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/

相关文章:

ruby - 访问 Nokogiri HTML 文档的当前 URI

css - xpath/css href 不打印

java - Webdriver xpath 多重匹配

python - 如何定位网页元素(Xpath : multiple conditions)

php - 在哪里可以找到有关text()xpath查询语法的一些官方文档?

ruby-on-rails - 使用 Nokogiri 将 XML 提要解析为 Ruby 对象?

ruby - Nokogiri 在 Ubuntu 20.04 上安装失败

xpath - 用额外的扭曲排除元素之间的节点

java - 无法通过 Selenium 和 Java 在 https ://spicejet. com 中选择出发日期

ruby - Nokogiri 将字符串解析为 xml