为什么这个Nokogiri XPath有一个null返回



我正在用NOKOGIRI浏览网页。我熟悉XPath,但我不明白为什么我的XPath不能拾取特定的行。请参阅ruby代码。

我使用FireBug XML来验证我的XPath,所以我99%确信我的XPath是正确的。

require 'nokogiri'
require 'open-uri'
@searchURL = 'http://www.umn.edu/lookup?UID=smit4562'
@xpath = '//html/body/p/table/tbody/tr/td[2]/table/tbody/tr[2]'
doc = Nokogiri::HTML(open(@searchURL))
puts 'row should be = Email Address: smit4562@umn.edu'
puts '=> ' + doc.xpath(@xpath).to_s
puts 'is row emppty?'
puts '=> ' + doc.xpath(@xpath).empty?().to_s

<tbody>标记是一个可选标记,如果省略它,它是隐式的。这意味着<tbody>标记在不存在时由浏览器自动插入。它们不在您的示例的源代码中,所以nokogiri不知道它们。

Firebug使用生成的DOM,其中确实包含tbody元素,因此该语句在浏览器中确实匹配。

删除两个tbody选择器,您就可以了。

相关内容

  • 没有找到相关文章

最新更新