如何将 ruby 散列转换为正确的 xml 格式
How do I convert ruby hash to proper xml format
下面是具体的XML我最终需要的是:
<?xml version="1.0" encoding="UTF-8"?>
<name>Test name</name>
<values>
<elements>123</elements>
<elements>456</elements>
<elements>789</elements>
</values>
我的哈希看起来像:
{
name: 'Test name' ,
values: [123, 456, 789],
}
这里我想在xml.
中制作重复的子元素
那么,如何将散列转换为 XML 格式?
请注意,您的示例不是有效的 XML 文档,因为它缺少根元素。假设您想要一个以名为 object
:
的元素为根的文档
require 'nokogiri'
h = {
name: 'Test name' ,
values: [123, 456, 789],
}
builder = Nokogiri::XML::Builder.new do |xml|
xml.object {
xml.name h[:name]
xml.values {
h[:values].each { |v| xml.elements v }
}
}
end
puts builder.to_xml
# <?xml version="1.0"?>
# <object>
# <name>Test name</name>
# <values>
# <elements>123</elements>
# <elements>456</elements>
# <elements>789</elements>
# </values>
# </object>
下面是具体的XML我最终需要的是:
<?xml version="1.0" encoding="UTF-8"?>
<name>Test name</name>
<values>
<elements>123</elements>
<elements>456</elements>
<elements>789</elements>
</values>
我的哈希看起来像:
{
name: 'Test name' ,
values: [123, 456, 789],
}
这里我想在xml.
中制作重复的子元素那么,如何将散列转换为 XML 格式?
请注意,您的示例不是有效的 XML 文档,因为它缺少根元素。假设您想要一个以名为 object
:
require 'nokogiri'
h = {
name: 'Test name' ,
values: [123, 456, 789],
}
builder = Nokogiri::XML::Builder.new do |xml|
xml.object {
xml.name h[:name]
xml.values {
h[:values].each { |v| xml.elements v }
}
}
end
puts builder.to_xml
# <?xml version="1.0"?>
# <object>
# <name>Test name</name>
# <values>
# <elements>123</elements>
# <elements>456</elements>
# <elements>789</elements>
# </values>
# </object>