当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 文件处理和文本解析
ddatsh

xml格式化

ddatsh 发布于 2011年06月14日 11时, 13评/15907阅
分享到: 
收藏 +0
1
<无详细内容>
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [全屏预览]

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);
	}

}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(13)

  • 1楼:小杨阿哥哥 发表于 2011-06-14 17:02 回复此评论
    不错~
  • 2楼:彭博 发表于 2013-01-27 01:21 回复此评论
  • 3楼:爱吃大肉包 发表于 2013-08-13 17:45 回复此评论
    不错, 引用了下
  • 4楼:ddatsh 发表于 2013-08-14 17:20 回复此评论
    我了个去,这代码居然被ostools用了 :)

  • 5楼:红薯 发表于 2014-05-08 17:33 回复此评论

    引用来自“ddatsh”的评论

    我了个去,这代码居然被ostools用了 :)

    就是因为这个代码,今天OSC被爆菊了
  • 6楼:首席安全砖家 发表于 2014-05-09 09:03 回复此评论

    引用来自“ddatsh”的评论

    我了个去,这代码居然被ostools用了 :)

    引用来自“红薯”的评论

    就是因为这个代码,今天OSC被爆菊了
    怎么写入的shell ? 看到这StringWriter 直接 reuturn 返回给了 客户端, 不存在服务器端 , 不明
  • 7楼:yangjh_chs 发表于 2014-05-09 16:35 回复此评论
    我正打算用,太牛逼了,咋个注入的?
  • 8楼:小薇 发表于 2014-05-12 21:40 回复此评论
    php 版本的: http://t.cn/8sFbaGd
    之前还有py版本的!py对于xml格式化选择更多!
  • 9楼:MyronLee 发表于 2015-06-04 10:21 回复此评论
    带命名空间的XML格式化报错。@ddatsh
  • 10楼:Gooiem 发表于 2016-02-25 13:53 回复此评论
    <?xml version="1.0" encoding="GBK"?>开头的报文直接被格式化成<?xml version="1.0" encoding="utf-8"?>


    我就纳闷儿了
  • 11楼:Gooiem 发表于 2016-02-25 13:54 回复此评论
    main方法中的报文似乎是 沪E78612 车的出险信息啊!嘿嘿(
  • 12楼:ddatsh 发表于 2017-07-07 12:47 回复此评论

    引用来自“圈圈de”的评论

    main方法中的报文似乎是 沪E78612 车的出险信息啊!嘿嘿(
    en,这是我在保险公司的时候引用的一段
  • 13楼:figue 发表于 2018-04-05 13:11 回复此评论
    看这篇xml,json报文格式化,更强,https://github.com/figuewang/message-transform
开源从代码分享开始 分享代码
ddatsh的其它代码 全部(8)...