我是Ruby的新手。我想要的只是生成一个简单的XML文件。
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
就是这样。
答案 0 :(得分:65)
构建器可能应该是您的第一个停止点:
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>
看起来对我来说是正确的。
一些构建器引用:
答案 1 :(得分:15)
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>
答案 2 :(得分:8)
您可以使用builder生成xml。
答案 3 :(得分:4)
以下是在Ruby中构建XML的更多选项
REXML - 内置但速度很慢,尤其是在处理大型文档时
Nokogiri - 更新更快,安装为rubygem
LibXML-Ruby - 建立在C libxml库上,也可以安装为rubygem
如果您无法安装rubygems,那么REXML是您的最佳选择。如果您要创建大型复杂的XML文档,那么Nokogiri或LibXML-Ruby就是您想要使用的。