XML形式文档的格式化--主要包括缩进和去空白

核心代码:

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);
     // 注释:创建一个串的字符输入流
     StringReader in = new StringReader(str);
     Document doc = reader.read(in);
     // System.out.println(doc.getRootElement());
     // 注释:创建输出格式
     OutputFormat formater = OutputFormat.createPrettyPrint();
     //formater=OutputFormat.createCompactFormat();
     // 注释:设置xml的输出编码
     formater.setEncoding( "utf-8" );
     // 注释:创建输出(目标)
     StringWriter out = new StringWriter();
     // 注释:创建输出流
     XMLWriter writer = new XMLWriter(out, formater);
     // 注释:输出格式化的串到目标中,执行后。格式化后的串保存在out中。
     writer.write(doc);
  
     writer.close();
     System.out.println(out.toString());
     // 注释:返回我们格式化后的结果
     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>上海分公司一部</UserCompanyName><RequestType>03</RequestType></HeadData><BodyData><ReportId>113100000033</ReportId><Insurant>a5rfg87</Insurant><NumberPlate>沪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></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的工具就是使用此段代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值