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

mib*_*bon 18 ruby xml nokogiri

可能重复:
在顶部没有XML标题行的情况下打印XML文档

我有Nokogiri :: XML :: Builder的问题.我正在使用此代码生成XML:

builder = Nokogiri::XML::Builder.new do 
    request {
        data '1'
    }
end
Run Code Online (Sandbox Code Playgroud)

结果是:

<?xml version="1.0" encoding="UTF-8"?><request><data>1</data></request>
Run Code Online (Sandbox Code Playgroud)

我该如何删除:

<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)

从我的XML?

Chr*_*zig 26

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

builder.doc.root.to_s
Run Code Online (Sandbox Code Playgroud)

  • 应该是`builder.doc.root.to_xml`(或`to_s`). (5认同)

the*_*Man 5

一个快速而肮脏的答案是告诉Nokogiri重新解析结果输出,然后查看根:

require 'nokogiri'

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

puts Nokogiri::XML(builder.to_xml).root.to_xml
Run Code Online (Sandbox Code Playgroud)

哪个输出:

<request>
  <data>1</data>
</request>
Run Code Online (Sandbox Code Playgroud)