Ruby哈希到XML:如何在重复XML xpath的哈希中创建重复键?

时间:2014-01-10 16:43:24

标签: ruby xml

我必须创建看起来像这样的XML:

<?xml version="1.0" ?>
<FirstLevel>
  <Package>
    <Name></Name>
  </Package>
  <Package>
    <Name></Name>
  </Package>
  ...
</FirstLevel>

如您所见,Package在结构中的同一级别多次显示。

我知道你不能在Ruby哈希中有重复的密钥,所以当有重复的密钥时,我不知道如何能够从哈希转到XML。有没有人有任何想法?

我正在使用Hash#to_xml将我的哈希值转换为XML(我相信由ActiveSupport提供)。

顺便说一下,我正在使用Rails。

1 个答案:

答案 0 :(得分:3)

好的,我相信我弄明白了。您必须使用Hash#compare_by_identity。我相信这使得密钥查找使用对象id而不是字符串匹配来完成。

我在“Ruby Hash with duplicate keys?”中找到了它。

{}.compare_by_identity

    h1 = {}
    h1.compare_by_identity
    h1["a"] = 1
    h1["a"] = 2
    p h1 # => {"a"=>1, "a"=>2}