22

Possible Duplicate:
Print an XML document without the XML header line at the top

I have a problem with Nokogiri::XML::Builder. I am generating XML wth this code:

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

And the result is:

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

How can I remove:

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

from my XML?

Community
  • 1
  • 1
mibon
  • 295
  • 2
  • 9

2 Answers2

31

Maybe take just the root node of the current Document object being built – .doc – instead of the whole document?

builder.doc.root.to_s
Marius Butuc
  • 17,781
  • 22
  • 77
  • 111
Christopher Creutzig
  • 8,656
  • 35
  • 45
7

A quick and dirty answer is to tell Nokogiri to reparse the resulting output, then look at the root:

require 'nokogiri'

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

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

Which outputs:

<request>
  <data>1</data>
</request>
the Tin Man
  • 158,662
  • 42
  • 215
  • 303