1

我需要从 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(如果可能的话,标准)最简单的方法是什么?

4

2 回答 2

1

问题是存在多个略有不同的映射。

我最终用不同的注释制作了不同的类。

编辑:另一种方式:http : //blog.bdoughan.com/2011/09/mapping-objects-to-multiple-xml-schemas.html (但不是类型安全且在标准 jaxb 之外,我会留下我当前的按原样实施)。

于 2013-08-19T16:28:09.930 回答
-2

如果您有 XML 的架构。您可以尝试使用 JAXB。JAXB 将为您提供 XML 的对象表示。使用访问者提取项目的每一次出现。

JAXB 是自 1.5 或 1.6 以来任何 JDK 中的标准。

于 2013-08-05T07:13:52.857 回答