2016-11-24 67 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()')