如何使用Javascript XSLT 处理XML文件(支持Firefox)

2007/9/27 9:08:57


阅读全文(8201) | 回复(2) | 编辑 | 精华

如何使用Javascript XSLT 处理XML文件(支持Firefox) 最近使用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!"); }

Qr

Posted by Qr on 2007/9/27 9:08:57

回复:如何使用Javascript XSLT 处理XML文件(支持Firefox)

2007/10/4 16:12:28


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

将文件格式相似的TXT文本文件转换为XML文件的小程序或代码大哥能帮忙实现吗 以下为blog主人的回复:  SORRY,国庆期间外出旅游,没能上网。 你可以上IBM的网站,看一下《用 XSL 操作数据》一文,以前做过一些,效果不是很好,这么说是吧,偶不太擅长这类数据的转换。如果有必要,建议你到论坛上发贴,咱们一起讨论。  

小刘(游客)

Posted by 小刘(游客) on 2007/10/4 16:12:28

回复:如何使用Javascript XSLT 处理XML文件(支持Firefox)

2007/9/28 20:35:07

大哥问个问题,可以吧 在xsl+xml开发的网站里,由于内容过长,怎样实现手动分页和自动分页啊 有对不起的地方请原谅啊!   以下为blog主人的回复: http://bbs.xml.org.cn/dispbbs.asp?Boardid=8&ID=53220  

sangzi(游客)

Posted by sangzi(游客) on 2007/9/28 20:35:07

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144787550 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号