一、引入
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.4</version>
</dependency>
二、使用
Document document = DocumentHelper.createDocument();
Element datainfo = DocumentHelper.createElement("ela");
document.setRootElement(datainfo);
Element elb = datainfo.addElement("elb");
elb.addElement("a").setText("1.6");
System.out.println(document.asXML());
#打印结果
<?xml version="1.0" encoding="UTF-8"?>
<ela>
<elb>
<a>1.6</a>
</elb>
</ela>
三、特殊字符处理
当需要在xml手动添加一段xml数据时,会发现<>被解析了
elb.addElement("b").setText("<c>2.3</c>");
#打印结果
<?xml version="1.0" encoding="UTF-8"?>
<ela>
<elb>
<a>1.6</a>
<b><c>2.3</c></b>
</elb>
</ela>
/**
* 格式化XML文档
* @param document xml文档
* @param charset 字符串的编码
* @param istrans 是否对属性和元素值进行转移
* @return 格式化后XML字符串
*/
public static String formatXml(Document document, String charset, boolean istrans)
{
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(charset);
StringWriter sw = new StringWriter();
XMLWriter xw = new XMLWriter(sw, format);
xw.setEscapeText(istrans);
try {
xw.write(document);
xw.flush();
xw.close();
} catch (IOException e) {
System.out.println("格式化XML文档发生异常,请检查!");
e.printStackTrace();
}
return sw.toString();
}
System.out.println(formatXml(document, "GBK", false));
#打印结果
<?xml version="1.0" encoding="GBK"?>
<ela>
<elb>
<a>1.6</a>
<b><c>2.3</c></b>
</elb>
</ela>