gpt4 book ai didi

html - 如何将 HTML 标记转换为原始文本?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:36 25 4
gpt4 key购买 nike

Nokogiri::XML::DocumentFragment 中删除所有标签并仅保留以空格分隔的文本的更简单方法是什么?

我要转型:

Hello<br>My name is McOmghall

进入:

Hello My name is McOmghall

我的解决方案是:

Nokogiri::XML.fragment(html_text).children.to_a.flatten.select { |node| node.class == Nokogiri::XML::Text}

然后连接该数组,在每个元素之间放置空格,但我认为这是次优的,而且不是很清楚。


编辑:

这是我的最终解决方案:

Nokogiri::XML.fragment(html_text).xpath('.//text()').map(&:text).join(' ')

最佳答案

root = Nokogiri::HTML('<div id="test">Hello<br>My name is McOmghall</div>')
root.at_css('#test').text
# => "HelloMy name is McOmghall"
root.at_css('#test').xpath('.//text()').map(&:text)
# => ["Hello", "My name is McOmghall"]
p root.at_css('#test').xpath('.//text()').map(&:text).join(' ')
# => "Hello My name is McOmghall"

关于html - 如何将 HTML 标记转换为原始文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com