XML标签⾃闭合
xml标签⾃闭合会改变报⽂格式,在⼀些涉及加密的程序处理中,⾃闭合导致报⽂更改从⽽引起⾮实际内容篡改所导致的加解密不⼀致的情况。以下程序是将⾃闭和更改为结束标签
package l;
import java.io.StringWriter;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class FormatXml {
public static void fotmatXml(String xmlMsg) {
OutputFormat format=new OutputFormat();
format.setEncoding("UTF-8");
//关闭⾃闭合标签
format.setExpandEmptyElements(true);
StringWriter strWtr=new StringWriter();
try {
XMLWriter xmlWrt=new XMLWriter(strWtr,format);
xmlWrt.write(DocumentHelper.parseText(xmlMsg));
xmlWrt.flush();
xmlWrt.close();
} catch (Exception e) {
e.printStackTrace();
}
/
/格式化,去掉换⾏
String formatXml = String().replaceAll("\r|\n", "");
System.out.println(formatXml);
}
public static void main(String[] args) {
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?><note><name>张三</name><age/></note>";
String xml1="<note><name>张三</name><age/></note>";
fotmatXml(xml);
fotmatXml(xml1);
dom4j读取xml}
}
需要注意的是报⽂传输中⼀般是⼀个⽆换⾏的字符串,所以需要格式化去掉换⾏,
执⾏结果:
<?xml version="1.0" encoding="UTF-8"?><note><name>张三</name><age></age></note>
<?xml version="1.0" encoding="UTF-8"?><note><name>张三</name><age></age></note>
可以看到即使不声明,结果会默认版本极编码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。