加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何解析xml到java对象?

发布时间:2020-12-16 08:02:38 所属栏目:百科 来源:网络整理
导读:我有一个用于配置一些规则的XML,它没有复杂的结构,但是这个配置是在我系统的任何地方使用的,所以我想解析这个XML到java对象和设计为单例模式,可以使用它直接将XML解密到Java对象,而不需要多写代码? 我做了一些关于Google的研究,知道JAXB是一个选择,
我有一个用于配置一些规则的XML,它没有复杂的结构,但是这个配置是在我系统的任何地方使用的,所以我想解析这个XML到java对象和设计为单例模式,可以使用它直接将XML解密到Java对象,而不需要多写代码?

我做了一些关于Google的研究,知道JAXB是一个选择,我的应用只是一些读取规则的工具程序,然后遵循做事情,JAXB可以更广泛地用于Web服务,它适合我的项目?

如果是,最重要的问题是,我使用xjc根据xsd文件生成Java对象源类,在解组后我将直接获取这些configurationType对象,是否有必要再次转换(从JaxB类到我拥有的java pojo对象配置),我看到大多数编码器做了这个,但为什么?因为他们是一些数据,只是从对象生成到JAXB并复制到我们自己创建的POJO对象

JAXB是一个理想的解决方案。但是您不一定需要xsd和xjc。通常你没有xsd,但你知道你的xml是什么。简单分析你的xml,例如,
<customer id="100">
    <age>29</age>
    <name>mkyong</name>
</customer>

创建必要的模型类(es):

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    @XmlElement
    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    @XmlAttribute
    public void setId(int id) {
        this.id = id;
    }

}

尝试解散:

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(new File("C:file.xml"));

检查结果,修复错误!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读