如何在没有“<?xml version = ...”的情况下使用Nokogiri生成XML?

问题描述:

可能重复:
Print an XML document without the XML header line at the top如何在没有“<?xml version = ...”的情况下使用Nokogiri生成XML?

我有引入nokogiri :: XML问题::生成器。我生成XML问心无愧验证码:

builder = Nokogiri::XML::Builder.new do 
    request { 
     data '1' 
    } 
end 

,其结果是:

<?xml version="1.0" encoding="UTF-8"?><request><data>1</data></request> 

如何删除:

<?xml version="1.0" encoding="UTF-8"?> 

从我的XML?

也许只取当前构建的Document对象的根节点– .doc –而不是整个文档?

builder.doc.root.to_s 
+0

它引发错误(文件已有一个根节点)。 但builder.parent.root.to_s没有。谢谢。你以正确的方式让我做事) – mibon 2012-01-17 13:47:39

+5

应该是'builder.doc.root.to_xml'(或'to_s')。 – Phrogz 2012-01-18 01:44:12

一个快速和肮脏的答案是告诉引入nokogiri重新分析产生的输出,再看看根:

require 'nokogiri' 

builder = Nokogiri::XML::Builder.new do 
    request { 
    data '1' 
    } 
end 

puts Nokogiri::XML(builder.to_xml).root.to_xml 

,输出:

<request> 
    <data>1</data> 
</request>