我必须创建如下所示的 XML:
<?xml version="1.0" ?>
<FirstLevel>
<Package>
<Name></Name>
</Package>
<Package>
<Name></Name>
</Package>
...
</FirstLevel>
如您所见,Package
在结构中的同一级别出现多次。
我知道在 Ruby 散列中不能有重复键,所以我不知道当有重复键时如何从散列转换为 XML。有人有什么想法吗?
我正在使用 Hash#to_xml
将我的哈希转换为 XML(我相信由 ActiveSupport 提供)。
顺便说一下,我正在使用 Rails。
最佳答案
好吧,我相信我明白了。您必须使用 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}
关于Ruby 哈希到 XML : How would I create duplicate keys in a hash for repeated XML xpaths?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21049775/