如何将注释添加到XML文件中

时间:2016-05-29 02:59:49

标签: ruby nokogiri

如何使用Nokogiri将注释添加到XML文件中?

例如,我有一个现有的html文件。我想添加<!--doc-->。我应该怎么做才能得到:

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

2 个答案:

答案 0 :(得分: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>有更多节点,它会更加有趣/复杂,你关心注释的位置,但是它仍然基本上位于你想要插入注释的位置,然后执行以上操作之一

答案 1 :(得分: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