从不同的XML数据集反序列化具有相同名称的XML @Element和@ElementList

时间:2014-10-05 14:00:13

标签: java android xml xml-parsing deserialization

我想使用SimpleXML将不同的XML序列化数据集反序列化为一个类(不是同时)。

所有数据集的根类都为<body/>,但子类不同。有些元素有<prediction>的一个元素,<prediction>的其他多个元素。 <route>也是如此。这是我目前使用的代码,但它给我一个PersistenceException类型的错误(“Duplicate annotation”)。

解决这个问题最简单的方法是什么?任何帮助,将不胜感激。

@Root(name = "body", strict = false)
class NextBusAPIResult {
    @Attribute(name = "copyright")
    public String Copyright;

    @Element(name = "predictions", required = false, type = Predictions.class)
    public Predictions Predictions;

    @ElementList(name = "predictions", required = false, inline = true)
    public List<Predictions> PredictionsForMultiStops;

    @Element(name = "route", required = false, type = RouteInfo.class)
    public RouteInfo RouteInfo;

    @ElementList(name = "route", required = false, inline = true)
    public List<RouteSchedule> RouteSchedules;
}

1 个答案:

答案 0 :(得分:1)

解决此问题的最简单方法是始终使用多个元素。只需删除与单个元素相关的代码。