2016-11-24 5 views
1

Nokogiri :: HTML :: DocumentFragmentドキュメントを削除する必要があります(コメントノードと空白を含むテキストノードのみを削除します)。ここでは例です:ドキュメントフラグメント内のコメントノードまたはテキストノードを見つける

html = "<p>paragraph</p><!-- comment --><p>paragraph</p> <p>paragraph</p>" 
doc = Nokogiri::HTML::DocumentFragment.parse html 

あなたが期待するよう文書フラグメントが見えます:

#(DocumentFragment:0x3fc65f9f5870 { 
    name = "#document-fragment", 
    children = [ 
    #(Element:0x3fc65f9f5064 { name = "p", children = [ #(Text "paragraph")] }), 
    #(Comment " comment "), 
    #(Element:0x3fc65f9f4f60 { name = "p", children = [ #(Text "paragraph")] }), 
    #(Text " "), 
    #(Element:0x3fc65f9f4e48 { name = "p", children = [ #(Text "paragraph")] }) 
    ] 
}) 

は、どのように私はこの文書フラグメント内のすべてのコメントや、すべてのテキストノードを見つけることができますか?

それは完全な文書が、文書の断片ではないので、次は動作しません:

doc.search('//text()') 
doc.search('//comment()') 

答えて

2

はそれを考え出した:

doc.search('.//text()') 
doc.search('.//comment()') 
関連する問題