格式化xml

时间:2023-03-10 04:55:22
格式化xml

在程序代码开发过程中,我们可能有时候需要将xml报文进行格式化一下,整理了一下,大概有两种方法:

 public String formatXml(String inputXml){
SAXReader reader = new SAXReader();
XMLWriter writer = null;
String requestXml = null;
try {
Document document = reader.read(new StringReader(inputXml));
if(document!=null){
StringWriter stringWriter = new StringWriter();
OutputFormat format = new OutputFormat(" ", true);
format.setEncoding("GBK");
format.setNewLineAfterDeclaration(false);//设置不存在空行
writer = new XMLWriter(stringWriter, format);
writer.write(document);
writer.flush();
requestXml = stringWriter.getBuffer().toString();
}
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}finally{
if(writer!=null){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return requestXml;
} public void formatXml2(String inputXml){
Format format = Format.getCompactFormat();
format.setEncoding("UTF-8");
format.setIndent(" ");
XMLOutputter outputter = new XMLOutputter(format);
org.jdom.Document document=null;
try {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
StringReader reader = new StringReader(inputXml);
document = (new SAXBuilder()).build(reader);
outputter.output(document, bo);
System.out.println(bo.toString());
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}