前言:日常开发过程中,经常会遇到需要将
Java
对象转XML
或者将XML
转Java
对象,本篇是作者总结日常研发过程中Java与XML相互转换的方法,仅供参考。
一、Java封装的XML API
JAXB(Java Architecture for XML Binding简称JAXB)
:允许Java开发人员将Java类映射为XML表示方式。JAXB提供两种主要特性:将一个Java对象序列化为XML,以及反向操作,将XML解析成Java对象。换句话说,JAXB允许以XML格式存储和读取数据,而不需要程序的类结构实现特定的读取XML和保存XML的代码。——摘自OSChina
《JAXB Java 的 XML 开发包》
-
编写
XML
工具类import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import java.io.StringReader; import java.io.StringWriter; public class XMLUtils { public static <T> String beanToXmlStr(T bean, String charset) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(bean.getClass()); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, charset); StringWriter writer = new StringWriter(); marshaller.marshal(bean, writer); return writer.toString(); } public static <T> T xmlStrToBean(String xml, Class<T> clazz) throws