格式化XML输出
来源:互联网 发布:淘宝主播吴小白 编辑:程序博客网 时间:2024/05/22 03:26
虽然XML设计的初衷是为了方便机器之间的交互(interoperability),而需要满足机器可阅读(machine readable)的特性。然而,由于程序员为了方便开发,既然XML是通过文本表示的,不如再强化一些,做到人类可阅读(human readable)吧。XML究竟是哪种可阅读的讨论已经是老生常谈了,这里不会深入探讨,只是借助这个机会介绍一些方便的格式化XML的方法,与大家共享。
借助MSXML的SAX接口
SAX虽然不是W3C的规范,然而XML社区仍然发扬光大了这种流推送的编程模型,并且广为流传。MSXML也支持SAX(这里特指SAX2)接口,而且SAX Writer还支持indent属性,显然,可以通过SAX Reader读取并送到SAX Writer进行格式化输出的目的。源代码如下:
var oArgs = WScript.Arguments;if (oArgs.length != 1) { WScript.Echo("Usage: cscript saxpretty.js [input xml]"); WScript.Quit();}input = oArgs(0);var reader = new ActiveXObject("Msxml2.SAXXMLReader.6.0");var writer = new ActiveXObject("Msxml2.MXXMLWriter.6.0");try { writer.encoding = "utf-8"; writer.omitXMLDeclaration = false; writer.standalone = true; writer.indent = true; reader.contentHandler = writer; reader.errorHandler = writer; reader.putProperty("http://xml.org/sax/properties/lexical-handler", writer); reader.putProperty("http://xml.org/sax/properties/declaration-handler", writer); reader.parseURL(input); WScript.Echo(writer.output);} catch(e) { WScript.Echo(e.description);}
比如输入文件是:
<?xml version="1.0" encoding="iso-8859-1"?><tag><nested>hello</nested></tag>
那么输出文件是:
<?xml version="1.0" standalone="yes"?><tag> <nested>hello</nested></tag>
虽然输入XML文件制定了编码,由于完全通过MSXML操作,SAX会打理好一切,所以输出文件中不需要指定编码,比如在JavaScript中就是以UTF-16保存的。
- 格式化XML输出
- C# 格式化输出XML
- java xml格式化输出
- java xml格式化输出
- xml 格式化输出
- Java格式化XML输出
- XML字符串格式化输出
- XML格式化输出到文件
- XML串的格式化输出
- 格式化XML字符串的输出
- C# xml格式化输出函数
- jsp输出xml保留格式化
- python格式化输出简单xml
- XML格式化(缩进)输出的方法
- dom4j输出格式化的xml文件
- C#.net 格式化输出XML文档字符串
- dom实现xml格式化输出(换行)
- xml在html中格式化输出
- 正则表达式30分钟入门教程(转载)
- Google推出DNS服务
- 数组复制和排序
- 专为Web开发者准备的 免费在线工具
- LED制作流程
- 格式化XML输出
- 09.12.15
- 了解PCM码
- 普通表变为分区表
- 09 12 15 JavaWeb 学习笔记
- SQL Server 查询优化(2)_索引的遍历与维护
- 千万别娶或者别嫁韩国人
- while循环
- 关于C#闭包