首页 > 网站 > WEB开发 > 正文

如何使用Javascript XSLT 处理XML文件(支持Firefox)

2024-04-27 14:14:25
字体:
来源:转载
供稿:网友

如何使用javascript XSLT 处理xml文件(支持Firefox

最近使用Firefox进行网页的调试,发现有些JavascriptXSLT处理XML的语句仅仅支持IE浏览器。而网络中的一些介绍javascriptXSLT处理XML的文章基本上都是依据Ajax来做的。无奈中,自己写了一个JavascriptXSLT处理XML展现页面的小功能。现在帖出来和大家共享,希望大家给点改进意见。在Firefox中使用XSLTPRocessor对象处理XML,主要使用该对象的两个方法:一、transformToFragment()。二、transformToDocument()。下面的代码仅仅使用transformToFragment()方法来实现对XML文件处理,如果你对在Firefox中使用JavascriptXSLT处理XML文件感兴趣的话不妨试着将以下代码改写成使用transformToDocument()方法来实现的处理功能。Javascript代码如下:

functioninitialize(){varxmlDoc;varxslDoc;

//判断浏览器的类型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对象varxsltProcessor=newXSLTProcessor();xsltProcessor.importStylesheet(xslDoc);varoResultFragment=xsltProcessor.transformToFragment(xmlDoc,document);//将解析过的文本输出到页面varoDiv=document.getElementById("guestbookPanel");oDiv.appendChild(oResultFragment);}catch(e){alert("error:003");}}elseif(typeofwindow.ActiveXObject!='undefined'){//varxmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");//支持IE浏览器xmlDoc=newActiveXObject('Microsoft.XMLDOM');xslDoc=newActiveXObject('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("Browserunknown!");}}

javascriptdom处理XSL显示数据的第二种方式。

主要代码如下:

varxmlDoc;varxslDoc;

//判断浏览器的类型if(document.implementation&&document.implementation.createDocument){//支持Mozilla浏览器try{xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async=false;xmlDoc.load("guestbook/guestbook.xml");xslDoc=document.implementation.createDocument("","",null);xslDoc.async=false;xslDoc.load("guestbook/guestbook.xsl");//定义XSLTProcessor对象varxsltProcessor=newXSLTProcessor();xsltProcessor.importStylesheet(xslDoc);//transformToDocument方式varresult=xsltProcessor.transformToDocument(xmlDoc);varxmls=newXMLSerializer();document.getElementById("guestbookPanel").innerHTML=xmls.serializeToString(result);}catch(e){alert("Unabletodoxml/xslprocessing");}}elseif(typeofwindow.ActiveXObject!='undefined'){try{//支持IE浏览器xmlDoc=newActiveXObject('Msxml2.DOMDocument');xslDoc=newActiveXObject('Msxml2.DOMDocument');xmlDoc.async=false;xslDoc.async=false;xmlDoc.load("guestbook/guestbook.xml");xslDoc.load("guestbook/guestbook.xsl");guestbookPanel.innerHTML=xmlDoc.documentElement.transformNode(xslDoc);}catch(e){alert("Unabletodoxml/xslprocessing");}}else{alert("Browserunknown!");}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表