兼容Firefox的Javascript XSLT 處理XML文件
最近使用Firefox進(jìn)行網(wǎng)頁(yè)的調(diào)試,發(fā)現(xiàn)有些Javascript XSLT處理XML的語(yǔ)句僅僅支持IE瀏覽器。而網(wǎng)絡(luò)中的一些介紹javascript XSLT 處理XML的文章基本上都是依據(jù)AJAX來(lái)做的。
無(wú)奈中,自己寫了一個(gè)Javascript XSLT處理XML展現(xiàn)頁(yè)面的小功能?,F(xiàn)在帖出來(lái)和大家共享,希望大家給點(diǎn)改進(jìn)意見。
在Firefox中使用XSLTProcessor對(duì)象處理XML,主要使用該對(duì)象的兩個(gè)方法:
一、transformToFragment()。
二、transformToDocument()。
下面的代碼僅僅使用transformToFragment()方法來(lái)實(shí)現(xiàn)對(duì)XML文件處理,如果你對(duì)在Firefox中使用Javascript XSLT 處理XML文件感興趣的話不妨試著將以下代碼改寫成使用transformToDocument()方法來(lái)實(shí)現(xiàn)的處理功能。
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對(duì)象
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslDoc);
var oResultFragment = xsltProcessor.transformToFragment(xmlDoc,document);
// 將解析過(guò)的文本輸出到頁(yè)面
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顯示數(shù)據(jù)的第二種方式。
主要代碼如下:
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對(duì)象
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!");
}
- javascript解析xml字符串的函數(shù)
- JavaScript 解析讀取XML文檔 實(shí)例代碼
- javascript 讀取XML數(shù)據(jù),在頁(yè)面中展現(xiàn)、編輯、保存的實(shí)現(xiàn)
- javascript XMLHttpRequest對(duì)象全面剖析
- Javascript(AJAX)解析XML的代碼(兼容FIREFOX/IE)
- javascript操作xml(增刪改查)例子代碼hta版
- JavaScript XML和string相互轉(zhuǎn)化實(shí)現(xiàn)代碼
- JavaScript高級(jí)程序設(shè)計(jì) XML、Ajax 學(xué)習(xí)筆記
- JavaScript操作XML 使用百度RSS作為新聞源示例
- JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(二十一) JavaScript中的XML
- javascript+xml實(shí)現(xiàn)簡(jiǎn)單圖片輪換(只支持IE)
- 如何使用Javascript正則表達(dá)式來(lái)格式化XML內(nèi)容
- javascript讀取Xml文件做一個(gè)二級(jí)聯(lián)動(dòng)菜單示例
相關(guān)文章
微信公眾號(hào)服務(wù)器驗(yàn)證Token步驟圖解
這篇文章主要介紹了微信公眾號(hào)服務(wù)器驗(yàn)證Token步驟圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12用js控制組織結(jié)構(gòu)圖可以任意拖拽到指定位置
用js控制生成了一個(gè)組織結(jié)構(gòu)圖并設(shè)置這個(gè)組織結(jié)構(gòu)可以任意拖動(dòng)到指定位置,具體代碼如下2014-01-01javascript實(shí)現(xiàn)日期格式轉(zhuǎn)換
這篇文章主要介紹了javascript實(shí)現(xiàn)日期格式轉(zhuǎn)換,非常的簡(jiǎn)單實(shí)用,項(xiàng)目中經(jīng)常可以用到,這里推薦給大家2014-12-12js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)到最底部示例代碼
這篇文章主要給大家介紹了關(guān)于js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)到最底部的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06websocket4.0+typescript 實(shí)現(xiàn)熱更新的方法
這篇文章主要介紹了websocket4.0+typescript 實(shí)現(xiàn)熱更新的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08