Core code:
package com.ddatsh; import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import java.io.UnsupportedEncodingException; import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter; public class XmlFormat { public static String format(String str) throws Exception { SAXReader reader = new SAXReader(); // System.out.println(reader); // Comment: Create a string of character input stream StringReader in = new StringReader(str); Document doc = reader.read(in); // System.out.println(doc.getRootElement()); // Comment: Create output format OutputFormat format = OutputFormat.createPrettyPrint(); // Formater=OutputFormat.createCompactFormat(); // Comment: Set the output encoding of xml formatter.setEncoding("utf-8"); // Comment: Create output (target) StringWriter out = new StringWriter(); // Comment: Create output stream XMLWriter writer = new XMLWriter(out, formatter); // Comment: Output formatted string into the target and after execution. The formatted string is saved in out. writer.write(doc); writer.close(); System.out.println(out.toString()); // Comment: Return our formatted result return out.toString(); } public static void main(String[] args) throws Exception { String head="<?xml version=/"1.0/" encoding=/"GBK/"?>"; String str = "<RequestData><HeadData><UserCode>sh1_admin</UserCode><UserName>sh1_admin</UserName><UserCompanyCode>3107</UserCompanyCode><UserCompanyName>Shanghai Branch 1</UserCompanyName><RequestType>03</Request Type></HeadData><BodyData><ReportId>113100000033</ReportId><Insurant>a5rfg87</Insurant><NumberPlate>Shanghai E78612</NumberPlate><EngineModel></EngineModel><CarVin></CarVin><AccidentDate>2011-02-25 15:07:00</AccidentDate><ReportDate>2011-02-25 15:07:00</ReportDate><Province>310000</Province><City>310100</City><District></District><AccidentPlace>1</AccidentPlace><AccidentLongitude></AccidentLongitude><AccidentLatitude></Ac cidentLatitude><SurveyLongitude></SurveyLongitude><SurveyLatitude></SurveyLatitude><SceneReportFlag></SceneReportFlag><Reporter></Reporter><ReporterTel></ReporterTel><SurveyPlace></ SurveyPlace><OperatorId>3525</OperatorId><OperatorName>sh_admin</OperatorName><ReportDealId>30000800</ReportDealId><ReportDealName>Jiangsu Branch</ReportDealName><CompanyName></CompanyName>< CustomerTypeCode></CustomerTypeCode><ForcePolicyId>a5rfg87a5rfg87a5rfg87</ForcePolicyId><BizPolicyId></BizPolicyId><Index>0</Index><FieldName>5</FieldName></BodyData></RequestData>"; // System.out.println(str); format(str); } }The online formatting tool used by Oschina uses this code.