兼容Firefox的Javascript XSLT 處理XML文件
最近使用Firefox進(jìn)行網(wǎng)頁的調(diào)試,發(fā)現(xiàn)有些Javascript XSLT處理XML的語句僅僅支持IE瀏覽器。而網(wǎng)絡(luò)中的一些介紹javascript XSLT 處理XML的文章基本上都是依據(jù)AJAX來做的。
無奈中,自己寫了一個(gè)Javascript XSLT處理XML展現(xiàn)頁面的小功能?,F(xiàn)在帖出來和大家共享,希望大家給點(diǎn)改進(jìn)意見。
在Firefox中使用XSLTProcessor對象處理XML,主要使用該對象的兩個(gè)方法:
一、transformToFragment()。
二、transformToDocument()。
下面的代碼僅僅使用transformToFragment()方法來實(shí)現(xiàn)對XML文件處理,如果你對在Firefox中使用Javascript XSLT 處理XML文件感興趣的話不妨試著將以下代碼改寫成使用transformToDocument()方法來實(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對象
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顯示數(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對象
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ù),在頁面中展現(xiàn)、編輯、保存的實(shí)現(xiàn)
- javascript XMLHttpRequest對象全面剖析
- 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)簡單圖片輪換(只支持IE)
- 如何使用Javascript正則表達(dá)式來格式化XML內(nèi)容
- javascript讀取Xml文件做一個(gè)二級(jí)聯(lián)動(dòng)菜單示例
相關(guān)文章
微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
JavaScript中遞歸實(shí)現(xiàn)的方法及其區(qū)別
遞歸函數(shù)是在通過名字調(diào)用自身的情況下構(gòu)成的。下面通過本文給大家分享JavaScript中遞歸實(shí)現(xiàn)的方法及其區(qū)別,感興趣的朋友一起看看吧2017-09-09
利用JavaScript實(shí)現(xiàn)的10種排序算法總結(jié)
這篇文章主要介紹了利用JavaScript實(shí)現(xiàn)的十種排序算法,主要介紹了冒泡,選擇,插入,希爾,歸并,快速,堆排,計(jì)數(shù),桶排和基數(shù),有感興趣的小伙伴可以參考閱讀本文2023-05-05
使用JavaScript構(gòu)建一個(gè)動(dòng)態(tài)交互式圖表
在Web開發(fā)中,JavaScript不僅是實(shí)現(xiàn)交互效果的關(guān)鍵,還可以用于構(gòu)建復(fù)雜的可視化組件,如動(dòng)態(tài)交互式圖表,下面我們就來看看如何構(gòu)建一個(gè)動(dòng)態(tài)交互式圖表吧2024-02-02
console.log()的作用與實(shí)現(xiàn)方式
這篇文章主要介紹了console.log()的作用與實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
javascript顯示動(dòng)態(tài)時(shí)間的方法匯總
本文給大家匯總介紹了3種javascript實(shí)現(xiàn)動(dòng)態(tài)顯示時(shí)間的方法及詳細(xì)示例,有需要的小伙伴可以參考下2018-07-07
微信小程序用戶授權(quán)獲取手機(jī)號(hào)(getPhoneNumber)
這篇文章主要給大家介紹了關(guān)于微信小程序用戶授權(quán)獲取手機(jī)號(hào)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
將form表單中的元素轉(zhuǎn)換成對象的方法適用表單提交
這篇文章主要介紹了如何將form表單中的元素轉(zhuǎn)換成對象,需要的朋友可以參考下2014-05-05
el-input 標(biāo)簽中密碼的顯示和隱藏功能的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了el-input 標(biāo)簽中密碼的顯示和隱藏 ,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07

