将 XML 转换为 Java 对象 [已关闭]

2022-09-02 00:18:58

将 XML 转换为 Java 对象的最佳方法是什么?

我不想要喜欢的表示,但想从XML中提取某些数据并填充Java对象。我看了一下XStream,但并不喜欢整个“下移,上移”类型的东西。在编写转换器时,我更喜欢像DOM一样的对象...


答案 1

如果你有一个XML模式,JAXB很好 - 作为JDK的一部分。通过运行来生成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"));

如果您只想将 XML 文档的一部分转换为对象,则可以执行类似的操作,例如,您应该能够为 DOM 文档提供 JAXB 的一部分,而不是像上面那样提供整个文件。


答案 2

我知道每个人都喜欢像JAXB这样的自动解决方案,但我建议手动编码和实现,以获得你想要的东西,而不会不必要地填满你的烫发空间。使用 JDOM 解析 XML 并使用 XPath 将值映射到 Java 对象中。做一次需要做一些工作,但你会有你需要的,仅此而已。javax.xml.bind.Marshallerjavax.xml.bind.Unmarshaller


推荐