我想在Groovy中将我的Map
对象转换为Xml。我看了一下当前的示例,我认为这会简单得多!
我找到的所有样本,要么使用a MarkupBuilder
to manually specify the fields,要么使用have a utility method到iterate over the tree。太可恶了!
有什么我错过了吗?我可以很简单地转换这些其他格式...
JsonOutput.prettyPrint(JsonOutput.toJson(map)) // json
(map as ConfigObject).writeTo(new StringWriter()) // groovy
new Yaml().dump(map, new StringWriter()) // yml
为什么我就不能做呢?
XmlUtil.serialize(map)
(OR如何将Map
对象转换为Element
/Node
/GPathResult
/Writable
对象?)
Groovy示例代码
def myMap = [
key1: 'value1',
key2: 'value2',
key3: [
key1: 'value1',
key2: 'value2',
key3: [
key1: 'value1',
key2: 'value2',
]
]
]
首选输出
<root>
<key1>value1</key1>
<key2>value2</key2>
<key3>
<key1>value1</key1>
<key2>value2</key2>
<key3>
<key1>value1</key1>
<key2>value2</key2>
</key3>
</key3>
</root>
2条答案
按热度按时间dluptydi1#
您可以执行:
要输出:
据我所知,没有可以调用的神奇方法(可能是因为属性的原因,没有可以在不知道所需输出结构的情况下完成的神奇Map-〉xml转换)
1aaf6o9v2#
其他可能的解决方案(这也适用于列表结构)...
结构
代码
结果
...但是,我想建议使用像Jackson这样的库,这种库比手动创建XML更好。