当我从 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"
Run Code Online (Sandbox Code Playgroud)
但我想要的是:
["foo", "bar", "baz"]
Run Code Online (Sandbox Code Playgroud)
抓取 XML 时也会发生同样的情况:
doc = Nokogiri::XML(<<EOT)
<root>
<block>
<entries>foo</entries>
<entries>bar</entries>
<entries>baz</entries>
</block>
</root>
EOT
doc.search('entries').text # => "foobarbaz"
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况以及如何避免这种情况?