简单的Xml列表解析问题

时间:2011-08-05 13:06:50

标签: java android xml xml-serialization simple-framework

我有这个xml:

<root>
<fruitlist>
    <apple>4</apple>
    <apple>5</apple>
    <orange>2</orange>
    <orange>6</orange>
</fruitlist>
</root>

我正在编写一个解析器类,虽然我无法弄清楚如何处理多个节点类型。我可以轻松地解析只包含一种节点类型的列表(例如,只是苹果,而不是橙子)

@ElementList(name = "fruitlist")
private List<Apple> exercises;

有多个节点类型,它也想要解析不起作用的非Apple节点。 我还尝试为橙子制作另一个列表,但它不起作用,我不能多次使用fruitlist名称。

@ElementList(name = "fruitlist", entry = "orange")
private List<Orange> exercises;

对于两种节点类型,理想情况是两个单独的列表。

Hubi

编辑: 经过更多的搜索和摆弄这个问题是重复的:

Inheritance with Simple XML Framework

2 个答案:

答案 0 :(得分:1)

试试这个,它会起作用。

@ElementListUnion({
   @ElementList(entry="apple", type=Apple.class),
   @ElementList(entry="orange", type=Orange.class)
})
private List<Fruit> fruitlist;

答案 1 :(得分:0)

解决此解析问题的理想数据结构可能是HashTable,其元素名称为键(String),可能的子列表为内容(List

Hashtable<String, Integer> numbers = new Hashtable<String, List<String>>();

无论如何,如果你想解析一个XML文件,你可以在Java中使用很多可能的文件。