如何在Nokogiri的XML根节点之前添加注释?

时间:2017-08-24 18:09:44

标签: ruby xml nokogiri

这就是我正在做的事情:

xml = Nokogiri::XML('<hello/>')
xml.root.add_previous_sibling(
  Nokogiri::XML::Comment.new(
    xml, '<!-- how are you? -->'
  )
)

这就是我想要实现的目标:

<?xml version="1.0"?>
<!-- how are you? -->
<hello/>

我得到了:

ArgumentError: A document may not have multiple root nodes.

什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

应在xml.children NodeSet中添加注释 这是一个例子:

 xml = Nokogiri::XML('<hello/>')
=> #<Nokogiri::XML::Document:0x3fe1db8d0ed0 name="document" children=[#<Nokogiri::XML::Element:0x3fe1db8d0584 name="hello">]>

xml.children.before(Nokogiri::XML::Comment.new(xml, 'how are you?'))
=> #<Nokogiri::XML::Element:0x3fe1db8d0584 name="hello">

xml.to_s
=> "<?xml version=\"1.0\"?>\n<!--how are you?-->\n<hello/>\n"