Джим Вейриха Builder очень прост в использовании. Вот пример из Корпоративная интеграция с Ruby Майка Шмидта:
xml = ''
doc = Builder::XmlMarkup.new(:target => xml, :indent => 2)
doc.instruct!
doc.person(:name => 'Max', :surname => 'Mustermann') { |person|
person.address { |address|
address.street('Hauptstr. 42')
address.tag!('postal-code', '12345')
address.city('Musterstadt')
}
person.position(:longitude => 12.345, :latitude => 56.789)
}
, который производит:
<?xml version="1.0" encoding="UTF-8"?>
<person surname="Mustermann" name="Max">
<address>
<street>Hauptstr. 42</street>
<postal-code>12345</postal-code>
<city>Musterstadt</city>
</address>
<position longitude="12.345" latitude="56.789"/>
</person>