我有这个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
编辑: 经过更多的搜索和摆弄这个问题是重复的:
答案 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中使用很多可能的文件。