выберите tr> 3 с помощью nokogiri - PullRequest
0 голосов
/ 28 августа 2010

я хочу получить строку, которая содержит более 3 столбцов как написать xpath с помощью nokogiri

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 Ответ

1 голос
/ 28 августа 2010

Правильный XPath будет примерно таким.

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

Однако в моей тестовой программе я не могу заставить Нокогири полюбить абсолютные 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')
...