使用Javascript直接就把XML格式化了,和IE默认显示效果相同。
完全在客户端搞定了。
(1)简单代码如下:
<script> function $(id){ return document.getElementById(id); }
function formatXml(){ var str = $('xml').value; //去除输入框中xmll两端的空格。 str = str.replace(/^\s+|\s+$/g,""); var source = new ActiveXObject("Msxml2.DOMDocument"); //装载数据 source.async = false; source.loadXML(str); // 装载样式单 var stylesheet = new ActiveXObject("Msxml2.DOMDocument"); stylesheet.async = false; stylesheet.load("defaultss.xsl"); var result = source.transformNode(stylesheet); var win = window.open("about:blank"); win.document.open(); win.document.write(result); win.document.close(); } </script>
以上代码当然是IE only了,别的浏览器不知道能否创建那两个对象。
(2)defaultss.xsl就是IE的默认XSL了。 得到它的方法是在IE地址栏输入: res://msxml2.dll/defaultss.xsl
如果没有,就依次尝试msxml3,msxml4等等。打开后,另存就行了。 放到服务器上时,注意这个xsl文件的位置。 如上例中,这个文件应该和执行该javascript所在的HTML文件在同一目录下。 stylesheet.load("defaultss.xsl"); 这个路径是根据HTML来算的,而不是JS文件。
|