Ped*_*cía 1 html ruby tags nokogiri
从Nokogiri::XML::DocumentFragment保留仅由空格分隔的文本中删除所有标记的简单方法是什么?
我想改造:
Hello<br>My name is McOmghall
Run Code Online (Sandbox Code Playgroud)
成:
Hello My name is McOmghall
Run Code Online (Sandbox Code Playgroud)
我的解决方案是:
Nokogiri::XML.fragment(html_text).children.to_a.flatten.select { |node| node.class == Nokogiri::XML::Text}
Run Code Online (Sandbox Code Playgroud)
然后连接该数组在每个元素之间放置空格,但我认为它不是最理想的,也不是很清楚.
编辑:
这是我的最终解决方案:
Nokogiri::XML.fragment(html_text).xpath('.//text()').map(&:text).join(' ')
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |