我完全是 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参考资料:
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>
REXML - 内置但处理大型文档时非常缓慢
Nokogiri - 较新且速度更快,安装为rubygem
LibXML-Ruby - 基于C libxml库构建,也安装为rubygem
如果您无法安装rubygems,则REXML是最佳选择。 如果您将创建大型复杂的XML文档,则应使用Nokogiri或LibXML-Ruby。