0

我有一个包含车辆数组的 XML 文件,但我需要能够反序列化它并获取每个对象并将其放入自己的车辆中。

例如,这就是我的 XML 文件的样子:

<Vehicle-array>
   <Car></Car>
   <Truck></Truck>
   <Van></Van>
</Vehicle-array>

所以我需要能够将 Car 元素反序列化为 Car 对象而不是Vehicle对象。

我可以得到所有的东西Vehicle[],每个元素都是一个特定的Vehicle类型。

4

3 回答 3

1

将它们全部放在 Vehicle Array 中,然后使用 instanceof 进行投射

if(a instanceof Car)
    a = (Car) a ;
else if(a instanceof Truck)
    ...
于 2013-07-08T20:08:27.913 回答
0

您可以使用 JAXB,但这需要您有一个 XML 模式。从那里您可以运行xjc以从模式生成 Java 类,然后使用MarshallerUnmarshaller接口从 XML 构建对象。

于 2013-07-08T20:02:28.640 回答
0

我认为您需要创建类,并使用注释 @XStreamAlias 注释所有类,如下所示:

@XStreamAlias("Car")
class Car { }

@XStreamAlias("Truck")
class Truck { }

大多数信息都可以在文档中找到。我建议先创建类,然后序列化为 XML,这样更容易进行映射。

于 2013-07-08T20:13:11.040 回答