在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂、繁琐。推荐一套简单的api--XStream类。在理解了原理的情况下看下注解的语法即会使用
例子是把xml映射成bean对象
<?xml version="1.0" encoding="UTF-8"?>
<c c1="0">
<d d1="101280101" d2="重庆" d3="nanping" d4="南坪"/>
<d d1="101280102" d2="重庆" d3="yubei" d4="渝北"/>
<d d1="101280103" d2="重庆" d3="dadukou" d4="大渡口"/>
</c>
第一种方法是使用 JAXB(Java Architecture for XML Binding) 实现XML与Bean的相互转换
简介
JAXB是一个业界的标准,是一项可以根据XML Schema
产生Java
类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java
对象树的方法,并能将Java
对象树的内容重新写到 XML
实例文档。
Jaxb 2.0是JDK 1.6的组成部分。我们不需要下载第三方jar包 即可做到轻松转换。Jaxb2使用了JDK的新特性,如:Annotation
、GenericType
等,需要在即将转换的JavaBean
中添加annotation
注解。
重要的使用有:
JAXBContext
类,是应用的入口,用于管理XML/Java绑定信息。Marshaller
接口,将Java对象序列化为XML数据。Unmarshaller
接口,将XML数据反序列化为Java对象。@XmlType
,将Java类或枚举类型映射到XML模式类型@XmlAccessorType(XmlAccessType.FIELD)
,控制字段或属性的序列化。FIELD
表示JAXB
将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient
标 注)字段到XML。其他值还有XmlAccessType
.PROPERTY
和XmlAccessType.NONE
。@XmlAccessorOrder
,控制JAXB 绑定类中属性和字段的排序。@XmlJavaTypeAdapter
,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。@XmlElementWrapper
,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。@XmlRootElement
,将Java类或枚举类型映射到XML元素。@XmlElement