一:概述
目前数据交互中常用的格式就是XML与Json,XML相对于Json而言性能不是很可观且文本的生成与解析过于复杂所以个人不是很喜欢XML。但是这个鬼东西格式统一,相对于Json又可以说更加通用。码农就是一块砖,项目需要就得搬。作者不是很喜欢DOM、SAX、JDOM、DOM4J等处理方案,虽然可以动态处理但是代码确实太多了。并且最重要的是作者个人认为XML解析转换为JavaBean后再进行相对应逻辑操作才是最正确的选择
二:准备
首先为了故事情节的正常发展,准备如下实体类
三:注解
3.1 注解介绍
@XmlRootElement : 定义根节点
@XmlElement : 定义节点
@XmlAttribute : 将属性映射为XML属性
@XmlElementWrapper : 为数组/集合定义父节点
@XmlAccessorType : 定义类中需要映射到XML上的属性
@XmlTransient : 屏蔽对象转XML文本不必要属性
上面介绍了@XmlAccessorType注解定义类中需要映射到XML文本上作为节点的属性类型,该注解值在XmlAccessType枚举类中定义,具备以下值:
1. PUBLIC_MEMBER :默认值,public权限亦或是具有get/set方法属性
2. FIELD :对象中的所有属性
3. PROPERTY :对象中所有具备get/set方法的属性
4. NONE :对象的所有属性都不映射
3.2 注意事项
- 属性同时定义get/set方法时不能将@XmlElement注解定义到属性上,否则会报错生成两个相同节点信息
- 使用@XmlAccessOrType注解时若属性值定义为PUBLIC_MEMBER不能实现get/set方法,不然也会报第一个类型错误
四:工具类封装
4.1 JavaBean转XML
4.2 XML转JavaBean
五:测试
六:添加CDATA
6.1 工具类
5.2 输出结果