我需要从xml(来自Redmine Web服务)解组一些数据。
问题是数据在嵌套在其他元素中时表示为属性:请参阅此处的“项目”...
<?xml version="1.0" encoding="UTF-8"?>
<issues type="array" count="1640">
<issue>
<id>4326</id>
<project name="Redmine" id="1"/>
<!-- ... ->
</issue>
</issues>
但是,如果我尝试获取项目列表,则相同的项目数据将表示为元素:
<?xml version="1.0" encoding="UTF-8"?>
<projects type="array">
<project>
<id>1</id>
<name>Redmine</name>
<identifier>redmine</identifier>
<created_on>Sat Sep 29 12:03:04 +0200 2007</created_on>
<!-- ... ->
</project>
</projects>
使用JAXB(标准,如果可能)最简单的方法是什么?
答案 0 :(得分:1)
问题在于存在多个略有不同的映射。
我最后用不同的注释创建了不同的类。
编辑:另一种方式:http://blog.bdoughan.com/2011/09/mapping-objects-to-multiple-xml-schemas.html(但不是类型安全的,在标准jaxb之外,我将保留当前的实现)。答案 1 :(得分:-2)
如果您拥有XML的架构。您可以尝试使用JAXB。 JAXB将为您提供XML的对象表示。使用访问者提取项目的每个事件。
JAXB是1.5或1.6以来任何JDK的标准。