我从某个服务器接收XML。我需要将xml解组为java对象并将java对象编组为xml。
我怎么能这样做?。
以下是我的XML格式。
<parent>
<child>
<order>
<row no="1">
<AB val="ID">205</AB>
<AB val="NAME">JS</AB>
<AB val="DETAILS">
<prod no="1">
<AB val="PRODID">205</AB>
<AB val="NAME">Prod1</AB>
</prod>
<prod no="2">
<AB val="PRODID">206</AB>
<AB val="NAME">Prod2</AB>
</prod>
</AB>
</row>
</order>
</child>
</parent>
答案 0 :(得分:0)
您可以使用jaxb2-maven-plugin
xjc
目标在构建期间从xml架构(xsd)生成java类(您可以通过任何在线生成器从xml生成xml架构,例如使用{{3 }})。
你也可以在控制台中使用xjc
并事先生成你的类,它内置在java中(参见<your jdk path>/bin/xjc.exe
)。
然后简单地使用marshaller / unmarshaller来完成工作,例如:
JAXBContext jaxbContext = JAXBContext.newInstance(YourClazz.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
YourClazz yourclazz = (YourClazz) jaxbUnmarshaller.unmarshall(new File("path/to/your/xml"));
btw我建议缓存JAXBContext
个实例,使用Map<Class<?>, JAXBContext>
。不要缓存marshaller / unmarshaller。