最近使用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 代码如下:
// 判断浏览器的类型
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!\");
}
}
本文地址:https://www.stayed.cn/item/14819
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我