Я совершенно новичок в Ruby. Все, что я хочу, это создать простой XML файл.
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
Что это.
Я совершенно новичок в Ruby. Все, что я хочу, это создать простой XML файл.
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
Что это.
Builder должен, вероятно, быть вашей первой остановкой:
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
производит следующее:
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
который выглядит правильно для меня.
Некоторые ссылки Builder:
Вы можете использовать builder для создания xml.
Просто с 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
Будет выводиться:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<products>
<widget>
<id>10</id>
<name>Awesome widget</name>
</widget>
</products>
</root>
Вот еще несколько вариантов построения XML в Ruby
REXML - встроенный, но очень медленный, особенно при работе с большими документами
Nokogiri - новее и быстрее, устанавливается как rubygem
LibXML-Ruby - построен на библиотеке C libxml, также устанавливается как rubygem
Если вы не можете установить rubygems, то REXML - это ваши лучшие варианты. Если вы собираетесь создавать большие сложные документы XML, то Nokogiri или LibXML-Ruby - это то, что вы хотели бы использовать.