如何将 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 格式?

参见Nokogiri::XML::Builder

请注意,您的示例不是有效的 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>