如何解析xml到java对象?

前端之家收集整理的这篇文章主要介绍了如何解析xml到java对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用于配置一些规则的XML,它没有复杂的结构,但是这个配置是在我系统的任何地方使用的,所以我想解析这个XML到java对象和设计为单例模式,可以使用它直接将XML解密到Java对象,而不需要多写代码

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

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

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

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

  1. @XmlRootElement
  2. public class Customer {
  3.  
  4. String name;
  5. int age;
  6. int id;
  7.  
  8. public String getName() {
  9. return name;
  10. }
  11.  
  12. @XmlElement
  13. public void setName(String name) {
  14. this.name = name;
  15. }
  16.  
  17. public int getAge() {
  18. return age;
  19. }
  20.  
  21. @XmlElement
  22. public void setAge(int age) {
  23. this.age = age;
  24. }
  25.  
  26. public int getId() {
  27. return id;
  28. }
  29.  
  30. @XmlAttribute
  31. public void setId(int id) {
  32. this.id = id;
  33. }
  34.  
  35. }

尝试解散:

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

检查结果,修复错误

猜你在找的XML相关文章