【问题标题】:Ruby Hash & Array to xmlRuby 哈希和数组到 xml
【发布时间】:2011-01-11 14:25:34
【问题描述】:

我正在使用 ActiveSupport 的 to_xml 从哈希生成一些 xml。

我需要这个红宝石:

:Shipment => {
  :Packages => [
    {:weight => '5', :type => 'box'},
    {:weight => '3', :type => 'tube'}
  ]
}

要生成这个 xml:

<Shipment>
  <Package>
    <weight>5</weight>
    <type>box</type>
  </Package>
  <Package>
    <weight>3</weight>
    <type>tube</type>
  </Package>
</Shipment>

但相反,它将数组包装在另一组 xml 标记中,如下所示:

<Shipment>
  <Packages>
    <Package>
      <weight>5</weight>
      <type>box</type>
    </Package>
    <Package>
      <weight>3</weight>
      <type>tube</type>
    </Package>
  </Packages>
</Shipment>

请不要告诉我我需要更改我的 xml 结构...这是 UPS 所说的:(

有人知道解决方法吗?

【问题讨论】:

  • 我只是在查看 Builder...看起来很酷。对其他 ruby​​ xml 工具的任何建议都会很棒。我已经检查了 xml-simple ......它似乎有点有限。 REXML 似乎只是将哈希更改为 xml 可能很复杂。

标签: ruby-on-rails xml api hash xml-serialization


【解决方案1】:

签出构建器是要走的路。您的 xml.builder 将如下所示:

xml.shipment do
    @packages.each do |package|
        xml.package do
            xml.weight package.weight
            xml.type package.type
        end
    end
end

【讨论】:

    猜你喜欢
    • 2014-08-22
    • 1970-01-01
    • 2012-05-14
    • 2017-11-30
    • 1970-01-01
    • 2021-02-05
    • 2014-03-03
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多