代码之家  ›  专栏  ›  技术社区  ›  tybro0103

Ruby哈希数组到XML

  •  1
  • tybro0103  · 技术社区  · 16 年前

    我正在使用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就是这么说的:(

    有人知道工作吗?

    1 回复  |  直到 16 年前
        1
  •  4
  •   ghoppe    16 年前

    查看Builder是一种方法。您的xml.builder将如下所示:

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