wes*_*ter 2 ruby xpath nokogiri
我正在使用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
Run Code Online (Sandbox Code Playgroud)
该<tbody>标签是一个可选的标签如果省略这是隐含的.这意味着<tbody>当不存在时,浏览器会自动插入标签.它们不在您示例中的源代码中,因此nokogiri不了解它们.
Firebug使用生成的DOM,它包含tbody元素,因此语句在浏览器中匹配.
删除两个tbody选择器,你应该没事.
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |