标题:
[注意]XML缩进输出,最简单的方法!
[打印本页]
作者:
cnangel
时间:
2005-3-20 13:08
标题:
[注意]XML缩进输出,最简单的方法!
作者:
sunrise_chen
★XML缩进输出,最简单的方法!
By: 无心(cuixiping) 2005-1-28
时不时的有人问xml的缩进。
网上见的多的是孟子E章BLOG上的XSLT方法(他的blog宣传不错,名气大嘛)
网址: http://blog.csdn.net/net_lover/archive/2004/07/27/53601.aspx
文章: 利用xslt对xml进行缩进格式化处理
该方法可以解决问题,但是,不仅代码繁琐,而且还需要一个xsl文件。
我觉得是过于麻烦了。
其实一切可以更简单的、更方便的!
问题来源于 MSXML DOM 调用save方法后,有改动的节点将都在一行,
没有回车换行和缩进,阅读很不方便。
你想,微软不会不知道这个问题存在吧,
微软毕竟是微软,他总不会没有替你想个解决办法吧!
都没仔细看微软的文档,就来瞎折腾,把可以简单的搞复杂了!
建议大家如果用微软的 msxml ,就看看他的文档吧。
我现在贴一下我的代码:
★ASP中:
<%
Dim rdr, wrt
set rdr = Server.CreateObject("MSXML2.SAXXMLReader.4.0")
set wrt = Server.CreateObject("MSXML2.MXXMLWriter.4.0")
wrt.indent = True
Set rdr.contentHandler = wrt
';--------------------------------------------
'; 可以解析 xml文件、xmlDom对象、xml字符串
'; rdr.parseURL ("books.xml");
'; rdr.parse (xmlDoc);
'; rdr.parse ("<article><author>无心(cuixiping)</author></article>");
';--------------------------------------------
rdr.parse "<article><author>无心(cuixiping)</author></article>"
response.write ("<xmp>")
response.write (wrt.output)
response.write ("</xmp>")
%>
★JavaScript中:
<script language="JavaScript">
var rdr = new ActiveXObject("MSXML2.SAXXMLReader.4.0");
var wrt = new ActiveXObject("MSXML2.MXXMLWriter.4.0");
wrt.indent = true;
rdr.contentHandler = wrt;
/*
* 可以解析 xml文件、xmlDom对象、xml字符串
* rdr.parseURL ("books.xml");
* rdr.parse (xmlDoc);
* rdr.parse ("<article><author>无心(cuixiping)</author></article>");
*/
rdr.parse("<article><author>无心(cuixiping)</author></article>");
alert(wrt.output);
</script>
复制代码
作者:
cnangel
时间:
2005-3-20 13:09
标题:
[注意]XML缩进输出,最简单的方法!
利用xslt对xml进行缩进格式化处理
下面就是简单的例子,这里提供2中方法:
test.htm
<SCRIPT>
//装载数据
x = "<r><a name=';net_lover';>aaaaaaaaaaa</a> <b>bbbbbbb</b><a>aaaaaaaaaaa</a><b>bbbbbbb</b></r>"
var source = new ActiveXObject("Msxml2.DOMDocument");
source.async = false;
source.loadXML(x)
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;
// 把解析结果放到结果对象中方法1
source.transformNodeToObject(stylesheet, result);
alert(result.xml)
// 把解析结果放到结果对象中方法2
result2 = ""
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>
复制代码
欢迎光临 星星博客 (http://commerce.huhoo.net/)
Powered by Discuz! 7.0.0