0

我有这个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 节点。我还尝试为橘子制作另一个列表,但它不起作用,我不能多次使用水果列表名称。

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

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

户比

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

简单 XML 框架的继承

4

2 回答 2

1

试试这个,它会工作的。

@ElementListUnion({
   @ElementList(entry="apple", type=Apple.class),
   @ElementList(entry="orange", type=Orange.class)
})
private List<Fruit> fruitlist;
于 2013-01-24T19:33:13.103 回答
0

解决这个解析问题的理想数据结构可能是一个哈希表,其中元素的名称作为键(字符串)和他可能的孩子的列表作为内容(列表

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

无论如何,如果您想解析 XML 文件,那么您可以在 Java 中使用许多可能的框架。

于 2011-08-05T13:21:52.273 回答