[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[整理]Javascript使用“IE默认XSL”格式化XML字符串

上一篇:[备忘]RCP开发,SWT的按钮旁边的向下小箭头的实现方法
下一篇:[备忘]Java中父类和子类的成员变量同名的情况..

添加日期:2011/8/3 16:35:41 快速返回   返回列表 阅读4693次
使用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文件。
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved