我有一个对象has_many
应呈现为 xml 的子对象。这不是问题。我的问题是我创建了一个 Hash
包含此数据,就像解析器需要它一样。但是 rails 自动将整个文件包含在
<hash>
<objects type="array">
<object>
...
...
...
</object>
</objects>
</hash>
我需要摆脱 type="array"
和 <hash>
我该如何处理?我没有在文档中找到任何内容。
最佳答案
我遇到了同样的问题;
这是我的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<Contacts>
<Contact type="array">
</Contact>
</Contacts>
我在用这个:
entries.to_xml
将散列数据转换为 XML,但这会将条目的数据包装到 <hash></hash>
中
所以我修改了:
entries.to_xml(root: "Contacts")
但这仍然将转换后的 XML 包装在“联系人”中,将我的 XML 代码修改为
<Contacts>
<Contacts>
<Contact type="array">
<Contact>
<Name></Name>
<Email></Email>
<Phone></Phone>
</Contact>
</Contact>
</Contacts>
</Contacts>
所以它添加了一个我不想要的额外 ROOT。
现在对我有用的解决方案是:
entries["Contacts"].to_xml(root: "Contacts")
避免<hash></hash>
或要包含的任何其他根。
干杯!
关于ruby-on-rails - 如何从 format.xml 中删除 <hash></hash>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8819482/