tags:

views:

641

answers:

3

I am completely new to Ruby. All I want is to produce a simple XML file.

<?xml version="1.0" encoding="ASCII"?>
<product>
   <name>Test</name>
</product>

That's it.

+4  A: 

You can use builder to generate xml.

sepp2k
+1  A: 

Here are a couple more options for constructing XML in Ruby

REXML - built-in but is very slow especially when dealing with large documents

Nokogiri - newer and faster, installs as a rubygem

LibXML-Ruby - built on the C libxml library, also installs as a rubygem

If you can't install rubygems then REXML is your best options. If you are going to be creating large complex XML docs then Nokogiri or LibXML-Ruby is what you would want to use.

Peer Allan
+6  A: 

Builder should probably be your first stopping point - it's very simple:

require 'builder'

def product_xml
  xml = Builder::XmlMarkup.new( :indent => 2 )
  xml.instruct! :xml, :encoding => "ASCII"
  xml.product do |p|
    p.name "Test"
  end
end

puts product_xml

produces this:

<?xml version="1.0" encoding="ASCII"?>
<product>
  <name>Test</name>
</product>

which looks about right to me.

Some Builder references:

Mike Woodhouse