利用 XSLT 对 XML 进行缩进格式化处理(转)

来源:互联网 发布:域名备案和服务器备案 编辑:程序博客网 时间:2024/04/30 00:42

在CSDN论坛上,经常有人提问:怎么样使输出XML文件有自动缩进的效果,实现这个功能有几种办法:1,可以用程序控制,输出时输出tab控制符或者空格即可;2,在.NET下提供了格式化的属性,参考利用XmlTextWriter类增强XML数据的可读性;3,我们还可以用XSLT进行转换,下面就是实现的例子:

XmlFormat.htm

 

SCRIPT

//装载数据str = "<r><a name='net_lover'>aaaaaaaaaaa</a> <b>bbbbbbb</b>"str += "<a>aaaaaaaaaaa</a><b>bbbbbbb</b></r>"var source = new ActiveXObject("Msxml2.DOMDocument");source.async = false;source.loadXML(str)alert(source.xml)// 装载样式单var stylesheet = new ActiveXObject("Msxml2.DOMDocument");stylesheet.async = false;stylesheet.resolveExternals = false;stylesheet.load("style.xsl");alert(stylesheet.xml)// 创建结果对象var result = new ActiveXObject("Msxml2.DOMDocument");result.async = false;// 把解析结果放到结果对象中方法1source.transformNodeToObject(stylesheet, result);alert(result.xml)// 把解析结果放到结果对象中方法2result2 = ""result2 = source.transformNode(stylesheet);source.loadXML(result2)alert(source.xml)</SCRIPT>

 

style.xsl

 

<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method = "xml" omit-xml-declaration = "yes" indent = "yes"/><xsl:template match="/ | @* | node()"><xsl:copy><xsl:apply-templates select="@* | node()"/></xsl:copy></xsl:template></xsl:stylesheet>

 

原创粉丝点击