XML is eXtensible Markup Language like HTML. It allows programmers to develop applications that can be read by other applications irrespective of operating system and developmental language used. It keeps track of small to medium amounts of data without any SQL based technique in backend.
Builder should probably be your first stopping point:
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:
Simply with Nokogiri::XML::Builder
require 'nokogiri'
builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
xml.root {
xml.products {
xml.widget {
xml.id_ "10"
xml.name "Awesome widget"
}
}
}
end
puts builder.to_xml
Will output:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<products>
<widget>
<id>10</id>
<name>Awesome widget</name>
</widget>
</products>
</root>
You can use builder to generate xml.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With