最近使用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!");
 - }
 - }
 
javascript dom 处理XSL显示数据的第二种方式,主要代码如下:
- 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");
 - xslDoc = document.implementation.createDocument("", "", null);
 - xslDoc.async = false;
 - xslDoc.load("guestbook/guestbook.xsl");
 - // 定义XSLTProcessor对象
 - var xsltProcessor = new XSLTProcessor();
 - xsltProcessor.importStylesheet(xslDoc);
 - // transformToDocument方式
 - var result = xsltProcessor.transformToDocument(xmlDoc);
 - var xmls = new XMLSerializer();
 - document.getElementById("guestbookPanel").innerHTML = xmls.serializeToString(result);
 - }
 - catch(e)
 - {
 - alert("Unable to do xml/xsl processing");
 - }
 - }
 - else if(typeof window.ActiveXObject != 'undefined')
 - {
 - try
 - {
 - // 支持IE浏览器
 - xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
 - xslDoc = new ActiveXObject('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("Unable to do xml/xsl processing");
 - }
 - }
 - else
 - {
 - alert("Browser unknown!");
 - }
 
【编辑推荐】
                网站名称:如何使用JavaScriptXSLT处理XML文件
                
                浏览路径:http://www.csdahua.cn/qtweb/news13/331913.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网