【发布时间】:2020-12-11 19:28:34
【问题描述】:
我正在寻找一种使用 Jackson 来解析具有重复元素的 XML 结构的简单方法。这是一个简化的例子:
<root>
<a>
<x>
<b>some content</b>
<c>some content</c>
</x>
<x>
<b>some content</b>
<c>some content</c>
</x>
...
<x>
<b>some content</b>
<c>some content</c>
</x>
</a>
... some other content ...
</root>
我想在一个列表或数组中收集所有x 元素问题是当使用类似的东西时:
XmlMapper().readTree(xml).get("a").fields()
结果仅包含x 的最后一个实例,因此看起来某些映射键被覆盖了。有一个使用JsonParser的解决方案
例如:XmlMapper().createParser(xml) 但它有点恶心。
有没有更好的办法?
编辑
按照我阅读README 中“已知限制”部分的方式,XML 似乎是杰克逊的二等公民。我接受@galuszkak 的回答,因为它是这样的,但在我看来,当开发人员调用XmlMapper().readTree(xml) 时,他们不希望XML 处理被硬塞到JSON 处理模型中,因为这种方法会受到限制。
【问题讨论】: