最近使用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 代码如下:
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显示数据的第二种方式。
主要代码如下:
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!");
}
分享到:
相关推荐
本文主要讨论如何在Firefox浏览器中使用JavaScript和XSLT来处理XML文件,以及与IE浏览器的兼容性问题。 一、XSLTProcessor对象 在Firefox浏览器中,可以使用XSLTProcessor对象来执行XSLT转换。XSLTProcessor对象...
总结来说,JavaScript与XSLT结合使用可以实现XML数据的客户端转换,提供了一种灵活的方式在浏览器端处理和展示XML内容。这种方法在不需要服务器端额外处理的情况下,可以提高页面的响应速度和用户体验。然而,需要...
xslt手册.chm java实现xslt 简单的 Xalan 扩展函数 - 工程 xslt知识点速查手册.doc 2 Javascript XSLT 处理XML文件(IE and Firefox).doc Saxon 剖析 XSLT 处理器.doc
例如,Internet Explorer使用MSXML,而Firefox和Chrome等现代浏览器使用XPath和XSLT的DOM接口。`xslt-processor`项目旨在提供一个统一且独立于平台的解决方案,这对于跨平台和跨浏览器的Web开发至关重要。 这个项目...
通过研究和优化数据岛的实现,Firefox旨在提供一个与XML数据交互的统一、高效的方式,以便开发者能够编写兼容更多浏览器的代码。 在实现数据岛的过程中,可能涉及到的技术包括: 1. **XMLHttpRequest**:用于异步从...
- Firefox - Internet Explorer - Opera - Konqueror - Safari 需要注意的是,虽然大部分现代浏览器都支持AJAX所需的技术,但在早期版本或某些特定配置下可能会存在兼容性问题。例如,Opera不支持XSL格式对象和XSLT...
1. **XSLT不被支持**:如果HTML文件使用了内联XSLT转换XML,Firefox可能需要一个独立的XSLT样式表文件,而不是内联的XSL样式。 2. **MIME类型问题**:XML文件的服务器返回的MIME类型必须是“application/xml”或...
因此,Firefox内置了一个XML解析器,用于处理XML文档和XSLT转换等任务。 ##### 3.8 显示后端(Display Backend) 显示后端是负责图形渲染的部分,根据不同的操作系统平台,Firefox会使用不同的显示后端组件。例如,...
在"Mozilla Firefox 支持数据岛(第二版)"的主题中,我们可以深入探讨Firefox如何实现这一功能,以及它与其他浏览器的差异。 数据岛的核心是通过XML数据源(XMLDataSource)来连接HTML元素和XML文档。XMLDataSource....
标题中的"sql+xml+firefox"表明我们关注的是SQL(结构化查询语言)、XML(可扩展标记语言)以及Firefox浏览器这三者的技术知识。下面将分别详细介绍这三个领域的关键知识点。 **SQL(结构化查询语言)** SQL是用于...
5. **XML和XSLT支持**:如果适用,会涵盖Firefox对XML和XSLT的支持。 6. **异步加载和Mutation Observers**:讲解如何处理异步内容加载和检测DOM的变化。 7. **Web Components**:如果Firefox支持,会介绍自定义元素...
Firefox 3.0.8在当时提供了对HTML、CSS、JavaScript、XML以及XSLT等网页语言的良好支持,并且对Web标准的遵循程度较高,这使得网页在火狐上呈现得更加准确和一致。 安全性是Firefox的另一大亮点。它内置了沙盒机制...
`test.htm`可能是一个包含上述CSS样式的HTML文件,而`ellipsis.xml`可能与XML格式的数据有关,虽然XML通常不直接用于样式,但它可能包含了要显示的文本数据,这些数据可能会在JavaScript或者XSLT中被处理,然后应用...
Firefox 5作为基础浏览器,Firebug 1.8作为强大的调试工具,XPath Checker 0.4.4则专注于XML数据的查询与验证。这三个组件一起,大大提升了开发者在构建和调试网页时的效率和准确性。通过安装压缩包中的Firefox_...
5. **局限性**:XML数据岛主要是微软IE浏览器支持的功能,对于其他非IE浏览器,如Firefox、Chrome等,可能需要使用其他方法,如JSON,来实现类似的功能。随着现代Web开发标准的发展,XML数据岛的使用已经逐渐减少,...
它解决了在不支持ActiveX控件的浏览器中进行XSLT转换的问题,这通常是Internet Explorer之外的浏览器如Firefox、Chrome、Safari等面临的挑战。 **XSLT基础** XSLT是一种W3C推荐的转换XML文档的语言,它允许开发者...
由于JavaScript和XML处理在不同浏览器中的实现可能存在差异,Sarissa库致力于提供一种统一的接口,兼容包括Internet Explorer、Firefox、Chrome、Safari和Opera在内的多种主流浏览器。这意味着开发者可以使用Sarissa...
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和...这些浏览器目前包括:Internet Explorer、Mozilla、Firefox、Opera、Konqueror及Mac OS的Safari。但是Opera不支持XSL格式对象,也不支持XSLT[2]。
DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或...