兼容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來做的。
無奈中,自己寫了一個Javascript XSLT處理XML展現(xiàn)頁面的小功能。現(xiàn)在帖出來和大家共享,希望大家給點改進(jìn)意見。
在Firefox中使用XSLTProcessor對象處理XML,主要使用該對象的兩個方法:
一、transformToFragment()。
二、transformToDocument()。
下面的代碼僅僅使用transformToFragment()方法來實現(xiàn)對XML文件處理,如果你對在Firefox中使用Javascript XSLT 處理XML文件感興趣的話不妨試著將以下代碼改寫成使用transformToDocument()方法來實現(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文檔 實例代碼
- javascript 讀取XML數(shù)據(jù),在頁面中展現(xiàn)、編輯、保存的實現(xiàn)
- javascript XMLHttpRequest對象全面剖析
- Javascript(AJAX)解析XML的代碼(兼容FIREFOX/IE)
- javascript操作xml(增刪改查)例子代碼hta版
- JavaScript XML和string相互轉(zhuǎn)化實現(xiàn)代碼
- JavaScript高級程序設(shè)計 XML、Ajax 學(xué)習(xí)筆記
- JavaScript操作XML 使用百度RSS作為新聞源示例
- JavaScript高級程序設(shè)計 閱讀筆記(二十一) JavaScript中的XML
- javascript+xml實現(xiàn)簡單圖片輪換(只支持IE)
- 如何使用Javascript正則表達(dá)式來格式化XML內(nèi)容
- javascript讀取Xml文件做一個二級聯(lián)動菜單示例
相關(guān)文章
用js控制組織結(jié)構(gòu)圖可以任意拖拽到指定位置
用js控制生成了一個組織結(jié)構(gòu)圖并設(shè)置這個組織結(jié)構(gòu)可以任意拖動到指定位置,具體代碼如下2014-01-01javascript實現(xiàn)日期格式轉(zhuǎn)換
這篇文章主要介紹了javascript實現(xiàn)日期格式轉(zhuǎn)換,非常的簡單實用,項目中經(jīng)??梢杂玫?,這里推薦給大家2014-12-12websocket4.0+typescript 實現(xiàn)熱更新的方法
這篇文章主要介紹了websocket4.0+typescript 實現(xiàn)熱更新的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08