javascript

位置:IT落伍者 >> javascript >> 浏览文章

如何使用Javascript XSLT 处理XML文件


发布日期:2021年05月23日
 
如何使用Javascript XSLT 处理XML文件

最近使用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(documentimplementation && documentimplementationcreateDocument)

{

// 支持Mozilla浏览器

try

{

xmlDoc = documentimplementationcreateDocument( null);

xmlDocasync = false;

xmlDocload(guestbook/guestbookxml);

}

catch(e)

{

alert(error:);

}

try

{

xslDoc = documentimplementationcreateDocument( null);

xslDocasync = false;

xslDocload(guestbook/guestbookxsl);

}

catch(e)

{

alert(error:);

}

try

{

// 定义XSLTProcessor对象

var xsltProcessor = new XSLTProcessor();

xsltProcessorimportStylesheet(xslDoc);

var oResultFragment = xsltProcessortransformToFragment(xmlDocdocument);

// 将解析过的文本输出到页面

var oDiv = documentgetElementById(guestbookPanel);

oDivappendChild(oResultFragment);

}

catch(e)

{

alert(error:);

}

}

else if(typeof windowActiveXObject != undefined)

{

//var xmlDoc=ServerCreateObject(MsxmlDOMDocument);

// 支持IE浏览器

xmlDoc = new ActiveXObject(MicrosoftXMLDOM);

xslDoc = new ActiveXObject(MicrosoftXMLDOM);

xmlDocasync = false;

xslDocasync = false;

xmlDocload(guestbook/guestbookxml);

xslDocload(guestbook/guestbookxsl);

guestbookPanelinnerHTML = xmlDocdocumentElementtransformNode(xslDoc);

}

else

{

alert(Browser unknown!);

}

}

javascript dom 处理XSL显示数据的第二种方式

主要代码如下

var xmlDoc;

var xslDoc;

// 判断浏览器的类型

if(documentimplementation && documentimplementationcreateDocument)

{

// 支持Mozilla浏览器

try

{

xmlDoc = documentimplementationcreateDocument( null);

xmlDocasync = false;

xmlDocload(guestbook/guestbookxml);

xslDoc = documentimplementationcreateDocument( null);

xslDocasync = false;

xslDocload(guestbook/guestbookxsl);

// 定义XSLTProcessor对象

var xsltProcessor = new XSLTProcessor();

xsltProcessorimportStylesheet(xslDoc);

// transformToDocument方式

var result = xsltProcessortransformToDocument(xmlDoc);

var xmls = new XMLSerializer();

documentgetElementById(guestbookPanel)innerHTML = xmlsserializeToString(result);

}

catch(e)

{

alert(Unable to do xml/xsl processing);

}

}

else if(typeof windowActiveXObject != undefined)

{

try

{

// 支持IE浏览器

xmlDoc = new ActiveXObject(MsxmlDOMDocument);

xslDoc = new ActiveXObject(MsxmlDOMDocument);

xmlDocasync = false;

xslDocasync = false;

xmlDocload(guestbook/guestbookxml);

xslDocload(guestbook/guestbookxsl);

guestbookPanelinnerHTML = xmlDocdocumentElementtransformNode(xslDoc);

}

catch(e)

{

alert(Unable to do xml/xsl processing);

}

}

else

{

alert(Browser unknown!);

}

(注由于代码书写简单故没有写过多的注释敬请谅解!)

上一篇:非常优秀的AJAX中文问题解决过滤器

下一篇:一次非典型性JSF调试过程