2016-05-29 55 views
0

如何使用Nokogiri將註釋添加到XML文件中?如何在XML文件中添加註釋

例如,我有一個現有的html文件。我想添加<!--doc-->。我應該怎麼做,所以我得到:

... 
<body> 
<!--doc--> 
</body> 
... 

回答

0

我用下面的代碼修復:

require 'nokogiri' 

d = Nokogiri::HTML(%Q(<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
</body> 
</html> 
)) 

d.css('body')[0].add_child(Nokogiri::XML::Comment.new(d, "doc")) 
puts d.to_s 
+1

太多的工作。 Nokogiri可以簡單地通過使用字符串來添加節點。看到我的答案。 –

1

我會使用:

require 'nokogiri' 

doc = Nokogiri::HTML('<html><body></body></html>') 
doc.at('body') << '<!-- foo -->' 

puts doc.to_html 


# >> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
# >> <html><body><!-- foo --></body></html> 

或者你可以使用的時間長一點的代碼:

doc.at('body').add_child('<!-- foo -->') 

這導致了相同的結果。

如果<body>有更多節點,並且您關心評論的位置,但它基本上仍然定位您希望插入評論的位置,然後執行上述操作之一,它會變得更有趣/複雜。