java实现的xml格式化实现代码

 更新时间:2016年11月08日 23:53:57   投稿:mdxy-dxy  
这篇文章主要介绍了java实现的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的工具就是使用此段代码。

相关文章

  • 详解java操作Redis数据库的redis工具(RedisUtil,jedis工具JedisUtil,JedisPoolUtil)

    详解java操作Redis数据库的redis工具(RedisUtil,jedis工具JedisUtil,JedisPoo

    这篇文章主要介绍了java操作Redis数据库的redis工具,包括RedisUtil,jedis工具JedisUtil,JedisPoolUtil工具,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • 详解Java中跳跃表的原理和实现

    详解Java中跳跃表的原理和实现

    跳跃表(Skip list)是有序链表的扩展,简称跳表,它在原有的有序链表上增加了多级索引,通过索引来实现快速查找,实质上是一种可以进行二分查找的有序链表。本文主要为大家介绍了跳跃表的原理和实现,需要的可以参考一下
    2022-12-12
  • Java线程池ForkJoinPool实例解析

    Java线程池ForkJoinPool实例解析

    这篇文章主要介绍了Java线程池ForkJoinPool实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot事件机制相关知识点汇总

    SpringBoot事件机制相关知识点汇总

    这篇文章主要介绍了SpringBoot事件机制相关知识点汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • springboot使用redisRepository和redistemplate操作redis的过程解析

    springboot使用redisRepository和redistemplate操作redis的过程解析

    本文给大家介绍springboot整合redis/分别用redisRepository和redistemplate操作redis,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-05-05
  • Java封装数组之改进为泛型数组操作详解

    Java封装数组之改进为泛型数组操作详解

    这篇文章主要介绍了Java封装数组之改进为泛型数组操作,结合实例形式详细分析了Java封装数组为泛型数组相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-03-03
  • SpringBoot的拦截器中依赖注入为null的解决方法

    SpringBoot的拦截器中依赖注入为null的解决方法

    这篇文章主要介绍了SpringBoot的拦截器中依赖注入为null的解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • SpringBoot接收前端参数的几种常用方式

    SpringBoot接收前端参数的几种常用方式

    在Spring Boot开发中接收参数是非常常见且重要的一部分,依赖于请求的不同场景,Spring Boot提供了多种方式来处理和接收参数,这篇文章主要给大家介绍了关于SpringBoot接收前端参数的几种常用方式,需要的朋友可以参考下
    2024-07-07
  • Mybatis-plus数据权限DataPermissionInterceptor实现

    Mybatis-plus数据权限DataPermissionInterceptor实现

    本文主要介绍了Mybatis-plus数据权限DataPermissionInterceptor实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Spring远程加载配置的实现方法详解

    Spring远程加载配置的实现方法详解

    这篇文章主要介绍了Spring远程加载配置的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03

最新评论