如何将ruby哈希转换为正确的xml格式

时间:2015-04-21 13:49:29

标签: ruby xml json hash

以下是我最终需要的特定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格式呢?

1 个答案:

答案 0 :(得分:1)

请参阅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>