项目中突然需要一个将数据转xml的功能,如下:
一个实体类
@Data
@ApiModel(value="RobotVo对象", description="")
@XmlAccessorType(XmlAccessType.FIELD)
// XML文件中的根标识
@XmlRootElement(name = "User")
// 控制JAXB 绑定类中属性和字段的排序
@XmlType(propOrder = {
"robotCode",
"robotIp",
})
public class obj{
private String robotCode;
private String robotIp;
}
public static void main(String[] args) {
Object obj = new Object ();
obj .setRobotIp("232");
obj .setRobotCode("232");
String s = convertToXml(obj );
System.out.println(s);
}
public static String convertToXml(Object obj) {
// 创建输出流
StringWriter sw = new StringWriter();
try {
// 利用jdk中自带的转换类实现
JAXBContext context = JAXBContext.newInstance(obj.getClass());
Marshaller marshaller = context.createMarshaller();
// 格式化xml输出的格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.TRUE);
// 将对象转换成输出流形式的xml
marshaller.marshal(obj, sw);
} catch (JAXBException e) {
e.printStackTrace();
}
return sw.toString();
}
结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<User>
<robotCode>232</robotCode>
<robotIp>232</robotIp>
</User>