1

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(' ')
4

3 に答える 3

2

Nokogiritext?この場合、非常に便利な方法があります。

html = "Hello<br>My name is McOmghall"    

Nokogiri::HTML.fragment(html).children.select(&:text?).join(' ')
# => "Hello My name is McOmghall"
于 2013-09-02T00:08:34.287 に答える