1.导入需要使用的Jar
//引入POM
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
2.编写要转换的的对象模型
@Data
@XmlRootElement(name="Hi") //根标签名
@XmlAccessorType(XmlAccessType.FIELD) //属性序列化
public class HelloWorld{
@XmlElement(name="Name") //标签中的名字,注解配合@XmlAccessorType使用
private String name;
@XmlElement(name="Sex")
private String sex;
}
3.进行转换
HelloWorld hello = new HelloWorld();
hello.setName("张三");
hello.setSex("男");
// 获取JAXB的上下文环境,需要传入具体的 Java bean
JAXBContext context = JAXBContext.newInstance(HelloWorld.class);
// 创建 Marshaller 实例
Marshaller marshaller = context.createMarshaller();
// 设置转换参数 -> 这里举例是告诉序列化器是否格式化输出
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
//用来接收转换后的xml字符串
StringWriter sw = new StringWriter();
marshaller.marshal(hello,sw);
return sw.toString();
4.转换结果
//输出结果
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Hi>
<Name>张三</Name>
<Sex>男</Sex>
</Hi>
</xml>