我想获得包含超过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
它不能运行,帮助和建议赞赏。
答案 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')