如何使用Nokogiri CSS选择器获取标签内的所有文本?

时间:2015-02-18 21:21:38

标签: ruby nokogiri

我正在尝试使用Nokogiri从HTML页面中提取文本。我正在使用CSS选择器来提取文本。

我知道text方法用于提取特定标记内的文本,但它只提供标记的直接子文本。

如何获取标记中的所有文本,包括嵌套在所述标记内的任何标记内的文本?

<td>
<div>
some text
</div>
<div>
more text
</div>
</td>

如何在<td>内的<td>标记中获取所有文字,因为text不会返回任何内容,而且事先不知道内部会有多少个标记{ {1}}。

2 个答案:

答案 0 :(得分:4)

看起来您可以简单地调用目标元素的#text方法,它将包含所有子文本节点:

doc = Nokogiri::HTML(your_html_snippet)
str = doc.css('td').text
str # => "\n\nsome text\n\n\nmore text\n\n"

答案 1 :(得分:0)

您可以使用

str = doc.css('td').content

这将获得所有嵌套级别的所有文本