我是Ruby的新手.我想要的只是生成一个简单的XML文件.
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
Run Code Online (Sandbox Code Playgroud)
而已.
Mik*_*use 66
生成器应该是你的第一个停止点:
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
Run Code Online (Sandbox Code Playgroud)
产生这个:
<?xml version="1.0" encoding="ASCII"?>
<product>
<name>Test</name>
</product>
Run Code Online (Sandbox Code Playgroud)
看起来对我来说是正确的.
一些Builder引用:
its*_*lay 16
只需使用 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
Run Code Online (Sandbox Code Playgroud)
将输出:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<products>
<widget>
<id>10</id>
<name>Awesome widget</name>
</widget>
</products>
</root>
Run Code Online (Sandbox Code Playgroud)
以下是在 Ruby 中构建 XML 的更多选项
REXML - 内置但非常慢,尤其是在处理大型文档时
Nokogiri - 更新更快,作为 rubygem 安装
LibXML-Ruby - 基于 C libxml 库构建,也作为 rubygem 安装
如果您无法安装 rubygems,那么 REXML 是您的最佳选择。如果您要创建大型复杂的 XML 文档,那么您需要使用 Nokogiri 或 LibXML-Ruby。
| 归档时间: |
|
| 查看次数: |
29149 次 |
| 最近记录: |