【发布时间】:2017-01-26 23:53:17
【问题描述】:
我正在尝试将从休息调用返回的 Xml 解组为 POJO。但是,一次调用可以返回具有不同根元素的不同类型的文档,例如
<obj1> ... </obj1>
<obj2> ... </obj2>
我使用通用函数解组:
private <T> T unmarshal(String xml, Class<T> clazz) {
JAXBContext jc = JAXBContext.newInstance(clazz);
return clazz.cast(jc.createUnmarshaller().unmarshal(new StringReader(xml));
}
我已经为每个不同的根创建了单独的类,但我不知道如何检查根元素类型,然后使用正确的类型调用我的解组函数?
if rootElement.equals("obj1")
Obj1 obj = unmarshal(xml, Obj1.class)
else if rootElement.equals("obj2")
Obj2 obj = unmarshal(xml, Obj2.class)
有没有办法使用 JaxB 对根元素进行条件检查?
【问题讨论】:
标签: xml xml-parsing jaxb