Ruby 哈希到 XML : How would I create duplicate keys in a hash for repeated XML xpaths?

标签 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。

最佳答案

好吧,我相信我明白了。您必须使用 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/

相关文章:

ruby-on-rails - 查找与 current_user 在同一组中的用户关联的所有记录

ruby - 如何为 rugged 的​​提交选择合适的差异/补丁

ruby - 我可以阻止 Bundler 将 RUBY VERSION 添加到 Gemfile.lock 吗

ruby-on-rails - 使用列标题使用 roo 解析 excel 工作表 - Ruby

java - 我可以在 Java 中解析 XML,而不需要从外部获取 XML 文件输入吗?

ruby 选项解析器 : hiding help text for a command option

c# - 如何查找缺少特定子节点的 XML 节点?

java - 从 Xmappr 更改为 BeanIO

java - java中通过多线程读写文件

java - 在 XML 中,您如何称呼这个 ://@Dohicky. 0 以及如何在 Java 中寻址它