2014-01-10 55 views
1

我要创建XML看起来是这样的:将Ruby哈希映射到XML:如何在重复XML xpaths的哈希中创建重复键?

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

正如你所看到的,Package在结构上同级别中多次出现。

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

我使用Hash#to_xml将我的散列转换为XML(由ActiveSupport提供,我相信)。

顺便说一下,我使用的是Rails。

+0

您也可以使用XML引入nokogiri使用/访问XML。 –

回答

3

好的,我相信我明白了。你必须使用Hash#compare_by_identity。我相信这样做可以使关键字查找使用对象标识符而不是字符串匹配。

我在“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}