【发布时间】:2014-02-06 18:22:19
【问题描述】:
我正在反序列化一些 XML,我希望能够轻松处理格式略有不同的版本。我是这个 XML 的使用者,我无法控制格式以使我的工作更轻松。一个版本的 XML 包含如下元素:
<food>
<entry name="thing1">
<member>apple</member>
</entry>
<entry name="thing2">
<member>orange</member>
</entry>
</food>
我有一个这样的带注释的类来解析它:
@Root(strict=false) public static class Food {
@Attribute public String name;
@ElementList(entry="member", inline=true) public List<String> members;
}
到目前为止一切顺利。今天,我发现这个 XML 的制作者也可能给我这个来表示相同的信息:
<food>
<name>fruits</name>
<entry name="thing1">
<baz>
<member>apple</member>
</baz>
</entry>
<entry name="thing2">
<baz>
<member>orange</member>
</baz>
</entry>
</food>
该元素现在位于 entry 和 member 之间。如果可能的话,我想要一个可以处理两种格式的带注释的 Food 类。这些感觉就像 SimpleFramework 可以轻松处理的东西,但是通过文档搜索并没有帮助我。我希望这里有人知道答案。
如果我必须知道我可以用另一种方式检测到这个较新的模式,然后切换到一组完全不同的带注释的类,但差异足够小,我会尽量避免这种情况。
【问题讨论】:
标签: java xml-parsing simple-framework