2

我正在使用 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

我怎样才能得到所有的名字而不必做两次?

4

1 回答 1

1

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

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

注意:在有效的 HTML 文档中, atd将始终位于 atable和 atr中。如果您没有任何其他选择器要求,则可以如上所述简化。

于 2013-02-12T21:09:36.793 回答