如何使用 JavaScript XSLT 处理 XML 文件

最近使用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!");   



    }   


}   


 

相关推荐