java实现的xml格式化实现代码
核心代码:
packagecom.ddatsh; importjava.io.IOException; importjava.io.StringReader; importjava.io.StringWriter; importjava.io.UnsupportedEncodingException; importorg.dom4j.Document; importorg.dom4j.DocumentException; importorg.dom4j.io.OutputFormat; importorg.dom4j.io.SAXReader; importorg.dom4j.io.XMLWriter; publicclassXmlFormat{ publicstaticStringformat(Stringstr)throwsException{ SAXReaderreader=newSAXReader(); //System.out.println(reader); //注释:创建一个串的字符输入流 StringReaderin=newStringReader(str); Documentdoc=reader.read(in); //System.out.println(doc.getRootElement()); //注释:创建输出格式 OutputFormatformater=OutputFormat.createPrettyPrint(); //formater=OutputFormat.createCompactFormat(); //注释:设置xml的输出编码 formater.setEncoding("utf-8"); //注释:创建输出(目标) StringWriterout=newStringWriter(); //注释:创建输出流 XMLWriterwriter=newXMLWriter(out,formater); //注释:输出格式化的串到目标中,执行后。格式化后的串保存在out中。 writer.write(doc); writer.close(); System.out.println(out.toString()); //注释:返回我们格式化后的结果 returnout.toString(); } publicstaticvoidmain(String[]args)throwsException{ Stringhead="<?xmlversion=\"1.0\"encoding=\"GBK\"?>"; Stringstr="<RequestData><HeadData><UserCode>sh1_admin</UserCode><UserName>sh1_admin</UserName><UserCompanyCode>3107</UserCompanyCode><UserCompanyName>上海分公司一部</UserCompanyName><RequestType>03</RequestType></HeadData><BodyData><ReportId>113100000033</ReportId><Insurant>a5rfg87</Insurant><NumberPlate>沪E78612</NumberPlate><EngineModel></EngineModel><CarVin></CarVin><AccidentDate>2011-02-2515:07:00</AccidentDate><ReportDate>2011-02-2515:07:00</ReportDate><Province>310000</Province><City>310100</City><District></District><AccidentPlace>1</AccidentPlace><AccidentLongitude></AccidentLongitude><AccidentLatitude></AccidentLatitude><SurveyLongitude></SurveyLongitude><SurveyLatitude></SurveyLatitude><SceneReportFlag></SceneReportFlag><Reporter></Reporter><ReporterTel></ReporterTel><SurveyPlace></SurveyPlace><OperatorId>3525</OperatorId><OperatorName>sh_admin</OperatorName><ReportDealId>30000800</ReportDealId><ReportDealName>江苏分公司</ReportDealName><CompanyName></CompanyName><CustomerTypeCode></CustomerTypeCode><ForcePolicyId>a5rfg87a5rfg87a5rfg87</ForcePolicyId><BizPolicyId></BizPolicyId><Index>0</Index><FieldName>5</FieldName></BodyData></RequestData>"; //System.out.println(str); format(str); } }
oschina用的在线格式化xml的工具就是使用此段代码。