使用Nokogiri在节点之间添加空间

时间:2014-05-15 13:51:46

标签: ruby nokogiri

我有一个HTML字符串,我想删除所有的html标签。问题是每个节点的纯文本被挤压在一起,我需要在每个节点之间添加一些空格。

Nokogiri::HTML("<p>Hello</p><p>There</p>").text
Gives  => HelloThere
I want => Hello There

我可以告诉Nokogiri以某种方式表现这样吗?

3 个答案:

答案 0 :(得分:3)

你可以做到

doc = Nokogiri::HTML("<p>Hello</p><p>There</p>")
doc.xpath('//text()').to_a.join(" ")

答案 1 :(得分:0)

Nokogiri::HTML("<p>Hello</p><p>There</p>").xpath("//*[not(child::*)]").map(&:text).join(' ')
# => "Hello There"

答案 2 :(得分:0)

编辑:我试图自己做,但最终使用了一个看起来像Uri Agassi的解决方案:)

irb(main):040:0> Nokogiri::HTML("<p>Hello</p><p>There</p>").xpath("//text()").map(&:text).join(" ")
=> "Hello There"