Rails 使用数组to_xml转换哈希,数组周围没有标签



>我有一个哈希,其中包含一个嵌套了几级深的数组:

hash = {
Sender_Name: "Bob",
Consignement: {
Load_Type: "FCL",
JobContainer: [
{c_number: "123"}, {c_number: 456}
]
}
}

我想使用to_xml将其转换为 xml.我能得到的最接近我想要的东西是

hash.to_xml(skip_instruct: true, skip_types: true, root: "Consolidation2")

这给了我:

<Consolidation2>
<Sender-Name>Bob</Sender-Name>
<Consignement>
<Load-Type>FCL</Load-Type>
<JobContainer>
<JobContainer>
<c-number>123</c-number>
</JobContainer>
<JobContainer>
<c-number>456</c-number>
</JobContainer>
</JobContainer>
</Consignement>
</Consolidation2>

但是JobContainer数组包装在一个额外的标签中。我怎样才能让它输出这个(没有额外的 JobContainer 标签包装数组(:

<Consolidation2>
<Sender-Name>Bob</Sender-Name>
<Consignement>
<Load-Type>FCL</Load-Type>
<JobContainer>
<c-number>123</c-number>
</JobContainer>
<JobContainer>
<c-number>456</c-number>
</JobContainer>
</Consignement>
</Consolidation2>

5月29日更新18:

我最终接受了这篇文章的建议,它给了我想要的东西。

我建议你试试xml-simple宝石。我不明白期望的确切输出是什么,但这是结果:

require 'xmlsimple'
=> true
XmlSimple.xml_out(hash, root_name: "Consolidation2")
=> <Consolidation2 Sender_Name="Bob">
<Consignement Load_Type="FCL">
<JobContainer c_number="123" />
<JobContainer c_number="456" />
</Consignement>
</Consolidation2>

您还可以查看文档以获取更多选项。

最新更新