兼容Firefox的Javascript XSLT 处理XML文件

前端技术 2023/09/06 JavaScript

最近使用Firefox进行网页的调试,发现有些Javascript XSLT处理XML的语句仅仅支持IE浏览器。而网络中的一些介绍javascript XSLT 处理XML的文章基本上都是依据AJAX来做的。

    无奈中,自己写了一个Javascript XSLT处理XML展现页面的小功能。现在帖出来和大家共享,希望大家给点改进意见。
    在Firefox中使用XSLTProcessor对象处理XML,主要使用该对象的两个方法:
一、transformToFragment()。

二、transformToDocument()。

    下面的代码仅仅使用transformToFragment()方法来实现对XML文件处理,如果你对在Firefox中使用Javascript XSLT 处理XML文件感兴趣的话不妨试着将以下代码改写成使用transformToDocument()方法来实现的处理功能。
Javascript 代码如下:
 

复制代码 代码如下:

function initialize() {
    var xmlDoc;
    var xslDoc;

    // 判断浏览器的类型
    if(document.implementation && document.implementation.createDocument)
    {       
        // 支持Mozilla浏览器
        try
        {
            xmlDoc = document.implementation.createDocument(\"\", \"\", null);   
            xmlDoc.async = false;
            xmlDoc.load(\"guestbook/guestbook.xml\");
        }
        catch(e)
        {
            alert(\"error:001\");
        }
        try
        {
            xslDoc = document.implementation.createDocument(\"\", \"\", null);
            xslDoc.async = false;    
              xslDoc.load(\"guestbook/guestbook.xsl\");
             
          }
          catch(e)
          {
              alert(\"error:002\");
          }
          try
          {
              // 定义XSLTProcessor对象   
            var xsltProcessor = new XSLTProcessor();
            xsltProcessor.importStylesheet(xslDoc);
            var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
            // 将解析过的文本输出到页面
            var oDiv = document.getElementById(\"guestbookPanel\");
            oDiv.appendChild(oResultFragment);
        }
        catch(e)
        {
            alert(\"error:003\");
        }   
    }
    else if(typeof window.ActiveXObject != \'undefined\')
    {       
        //var xmlDoc=Server.CreateObject(\"Msxml2.DOMDocument.4.0\");       
        // 支持IE浏览器
        xmlDoc = new ActiveXObject(\'Microsoft.XMLDOM\');
        xslDoc = new ActiveXObject(\'Microsoft.XMLDOM\');
        xmlDoc.async = false;
        xslDoc.async = false;    
        xmlDoc.load(\"guestbook/guestbook.xml\");
          xslDoc.load(\"guestbook/guestbook.xsl\");
        guestbookPanel.innerHTML = xmlDoc.documentElement.transformNode(xslDoc);   
    }
    else
    {
        alert(\"Browser unknown!\");
    }
}

本文地址:https://www.stayed.cn/item/14819

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。