用nokogiri选择tr> 3

时间:2010-08-28 03:23:18

标签: ruby nokogiri

我想获得包含超过3列的行 如何用nokogiri编写xpath

require 'rubygems'
require 'nokogiri'
item='sometext'
doc = Nokogiri::HTML.parse(open(item))
data=doc.xpath('/html/body/table/tr[@td.size>3]')
puts data

它不能运行,帮助和建议赞赏。

1 个答案:

答案 0 :(得分:1)

正确的XPath将是这样的。

doc.xpath('/html/body/table/tr[count(td)>3]')

然而,在我的测试程序中,我不能让Nokogiri喜欢这样的绝对XPath。我必须使用双斜杠XPath。

require 'rubygems'
require 'nokogiri'

html = %{
<table>
<tr class=wrong><td><td></tr>
<tr class=right><td><td><td></tr>
</table>
}

doc = Nokogiri::HTML.parse(html)
data = doc.xpath('//table/tr[count(td)>2]')
puts data.attribute('class')