与Firefox兼容的用于处理XML文件的JavascriptXSLT
Firefox最近被用于调试Web页面,发现一些XML的XSLT语句只由IE浏览器支持,而介绍Javascript XSLT处理XML的网络中的一些文章基本上是在ajax基础上完成的。无奈之下,我编写了一个Javascript XSLT的小函数来处理XML显示页面。
使用xsltprocessor对象来处理XML在Firefox中,对象的方法主要是利用:
一、transformtofragment()。
二,transformtodocument()。
下面的代码使用transformtofragment(XML)来处理文件,如果你使用Javascript XSLT的XML文件是对Firefox尝试下面的代码到transformtodocument使用()实现处理功能的方法。
Javascript代码如下所示:
复制代码代码如下所示:
函数初始化(){
VaR xmlDoc;
无功xsldoc;
确定浏览器的类型。
如果(document.implementation文件。执行。获取)
{
支持Mozilla browser
尝试
{
document.implementation.createdocument xmlDoc =(
xmldoc.async = false;
xmldoc.load(留言/留言。XML);
}
捕捉(e)
{
警报(错误:001 );
}
尝试
{
xsldoc = document.implementation.createdocument(
xsldoc.async = false;
xsldoc.load(留言/留言。XSL );
}
捕捉(e)
{
警报(错误:002 );
}
尝试
{
/ / xsltprocessor对象定义
无功xsltprocessor =新xsltprocessor();
xsltprocessor.importstylesheet(xsldoc);
无功oresultfragment = xsltprocessor.transformtofragment(xmlDoc,文档);
解析文本输出到页面
无功odiv = document.getelementbyid(guestbookpanel );
odiv.appendchild(oresultfragment);
}
捕捉(e)
{
警报(错误:003 );
}
}
else if(typeof window.activexobject!= 'undefined)
{
/ / var xmlDoc = server.createobject(MSXML2. DOMDocument。4);
支持IE浏览器
xmlDoc =新的ActiveX对象('microsoft XMLDOM。);
xsldoc =新('microsoft XMLDOM ActiveX对象。);
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load(留言/留言。XML);
xsldoc.load(留言/留言。XSL );
guestbookpanel.innerhtml = xmldoc.documentelement.transformnode(xsldoc);
}
其他的
{
警报()浏览器未知!;
}
}
Javascript DOM处理XSL显示数据的第二种方式。
主要代码如下:
复制代码代码如下所示:
VaR xmlDoc;
无功xsldoc;
确定浏览器的类型。
如果(document.implementation文件。执行。获取)
{
支持Mozilla browser
尝试
{
document.implementation.createdocument xmlDoc =(
xmldoc.async = false;
xmldoc.load(留言/留言。XML);
xsldoc = document.implementation.createdocument(
xsldoc.async = false;
xsldoc.load(留言/留言。XSL );
/ / xsltprocessor对象定义
无功xsltprocessor =新xsltprocessor();
xsltprocessor.importstylesheet(xsldoc);
/ / transformtodocument
VaR结果= xsltprocessor.transformtodocument(xmlDoc);
VaR XMLS =新XmlSerializer();
document.getelementbyid(guestbookpanel ).innerHTML = xmls.serializetostring(结果);
}
捕捉(e)
{
警报(无法进行xml处理);
}
}
else if(typeof window.activexobject!= 'undefined)
{
尝试
{
支持IE浏览器
xmlDoc =新的ActiveX对象('msxml2 DOMDocument。);
xsldoc =新的ActiveX对象('msxml2 DOMDocument。);
xmldoc.async = false;
xsldoc.async = false;
xmldoc.load(留言/留言。XML);
xsldoc.load(留言/留言。XSL );
guestbookpanel.innerhtml = xmldoc.documentelement.transformnode(xsldoc);
}
捕捉(e)
{
警报(无法进行xml处理);
}
}
其他的
{
警报()浏览器未知!;
}