如何用Nokogiri解析TABLE文本?

时间:2013-02-12 20:46:07

标签: html ruby parsing nokogiri

我正在使用nokogiri gem来解析一个html表内容,其中我有一个包含名称列表的列,其中一些名称是超链接的,有些则不是。当我使用这段代码时:

puts doc.xpath("//table//tr//td[1]/text()")

它会跳过超链接的名称。我也可以用这个获得超链接名称:

doc.xpath('//table//tr//td[1]//a[@href]').each do |link|
   puts link.text.strip
end

如何在不必两次完成的情况下获取所有名称?

1 个答案:

答案 0 :(得分:1)

如果您想要单元格中的所有文本,是否已超链接:

doc.xpath('//td[1]').each do |cell|
   puts cell.text.strip
end

注意:在有效的HTML文档中,td始终位于tabletr之内。如果您没有任何其他选择器要求,则可以如上所述进行简化。