猿问

如何在抓取时避免连接节点中的所有文本

如何在抓取时避免连接节点中的所有文本

当我从HTML或XML中抓取几个相关节点以提取文本时,所有文本都被连接到一个长字符串中,因此无法恢复单个文本字符串。

例如:

require 'nokogiri'doc = Nokogiri::HTML(<<EOT)<html>
  <body>
    <p>foo</p>
    <p>bar</p>
    <p>baz</p>
  </body></html>EOT

doc.search('p').text # => "foobarbaz"

但我想要的是:

["foo", "bar", "baz"]

在刮取XML时也会发生相同的情况:

doc = Nokogiri::XML(<<EOT)<root>
  <block>
    <entries>foo</entries>
    <entries>bar</entries>
    <entries>baz</entries>
  </block></root>EOT

doc.search('entries').text # => "foobarbaz"

为什么会发生这种情况,我该如何避免呢?


函数式编程
浏览 484回答 1
1回答
随时随地看视频慕课网APP
我要回答