【问题标题】:Ruby hash to XML: How would I create duplicate keys in a hash for repeated XML xpaths?Ruby 哈希到 XML:如何在哈希中为重复的 XML xpath 创建重复的键?
【发布时间】:2014-01-10 16:43:24
【问题描述】:

我必须创建如下所示的 XML:

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

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

我知道在 Ruby 散列中不能有重复的键,所以我不知道当有重复的键时如何从散列转到 XML。有人有什么想法吗?

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

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

【问题讨论】:

  • 您也可以使用 nokogiri xml 来使用/访问 xml。

标签: ruby xml


【解决方案1】:

好的,我相信我想通了。你必须使用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}

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 2023-04-05
    • 2011-12-28
    • 1970-01-01
    • 2015-06-28
    • 2021-06-23
    • 2016-11-14
    • 2011-07-01
    • 2023-03-21
    相关资源
    最近更新 更多