我有一个包含Vehicle数组的XML文件,但是我需要能够对其进行反序列化并将每个对象放入其自己的Vehicle中。
例如,这就是我的XML文件的样子:
<Vehicle-array>
<Car></Car>
<Truck></Truck>
<Van></Van>
</Vehicle-array>
所以我需要能够将Car元素反序列化为Car对象而不是Vehicle
对象。
我可以获得Vehicle[]
的所有内容,每个元素都是特定的Vehicle
类型。
答案 0 :(得分:1)
将它们全部放入车辆阵列中,然后使用instanceof
进行投射if(a instanceof Car)
a = (Car) a ;
else if(a instanceof Truck)
...
答案 1 :(得分:0)
您可以使用JAXB,但这需要您拥有XML架构。从那里,您可以运行xjc
从模式生成Java类,然后使用Marshaller
和Unmarshaller
接口从XML构建对象。
答案 2 :(得分:0)
我认为您需要创建类,并使用注释@XStreamAlias注释所有类,如下所示:
@XStreamAlias("Car")
class Car { }
@XStreamAlias("Truck")
class Truck { }
大部分信息都可以在the documentation中找到。我建议先创建类,然后序列化为XML,这样就可以更容易地进行映射。