将XML转换为Java对象的最佳方法是什么?
我不想要类似的表示,但想从XML中提取某些数据并填充Java对象.我看过XStream,但并不喜欢整个"向下移动"的东西.在编写转换器时我更喜欢DOM之类的对象......
nos*_*nos 24
如果你有一个XML模式,JAXB很好 - 作为JDK的一部分.通过运行eg生成java类xjc -p foo myschema.xsd
要读取XML文件并获取对象(从xjc工具生成的类):
JAXBContext context = JAXBContext.newInstance(FooObj.class);
Unmarshaller unMarshaller = context.createUnmarshaller();
FooObj param = (FooObj) unMarshaller.unmarshal(new FileInputStream("Foo.xml"));
Run Code Online (Sandbox Code Playgroud)
如果您只想将XML文档的某些部分转换为对象,则可以执行类似的操作,例如,您应该能够为JAXB提供部分DOM文档,而不是如上所述的整个文件.
duf*_*ymo 12
我知道每个人都喜欢像JAXB这样的自动解决方案,但我建议手动编码javax.xml.bind.Marshaller和javax.xml.bind.Unmarshaller实现,以获得你想要的东西,而不必不必要地填补你的perm gen空间.使用JDOM解析XML并使用XPath将值映射到Java对象.这样做一次会有一些工作,但你将拥有你所需要的,仅此而已.
JAXB是将对象转换为XML的最佳方式,MOXy是最佳的JAXB实现.
MOXy提供以下扩展:
| 归档时间: |
|
| 查看次数: |
85014 次 |
| 最近记录: |