我有以下格式的哈希
{
'1234' => {"key1"=>1234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"},
'234' => {"key1"=>234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"}
}
我想将其转换为xml,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<MyKeys>
<MyKey>
<Key1>1234/Key1>
<Key2>sdfsdf</Key2>
<Key3>sdfsdfs</Key3>
</MyKey>
<MyKey>
<Key1>234/Key1>
<Key2>sdfsdf</Key2>
<Key3>sdfsdfs</Key3>
</MyKey>
</MyKeys>
问题是,xmlsimple没有这样做。而不是推杆,它正在创造&lt; 1234&gt;标签
我想摆脱这个....任何帮助?甚至ActiveSupport to_xml也是如此。还有其他选择吗?
答案 0 :(得分:2)
外部哈希的密钥绝对是1234
和234
。 xmlsimple正在进行正确的解析。你没有在哈希中提到MyKeys
或MyKey
。在将哈希值转换为xml之前,您应该将哈希值转换为所需的格式。
hash = {
'1234' => {"key1"=>1234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"},
'234' => {"key1"=>234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"}
}
converted_hash = Hash[hash.map{|k, v| ["MyKey", v]}]
result_hash = {"MyKeys" => converted_hash}
在此哈希上使用xmlsimple。