最近使用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!");
 }

如何使用Javascript XSLT 处理XML文件(支持Firefox)的更多相关文章

  1. 在java代码中用xslt处理xml文件

    java处理xml文件 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio ...

  2. 在java代码中,用xslt处理xml文件

    http://blog.csdn.net/zhou_lei/article/details/2661735 ********************************************** ...

  3. javascript 实现 对XML文件 2级/3级联动操作

    js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...

  4. 使用javascript中读取Xml文件做成的一个二级联动菜单

    [html] view plaincopy <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...

  5. IE下JS读取xml文件示例代码

    JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...

  6. JavaScript 解析读取XML文档 实例代码(转)

    JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readx ...

  7. [转]使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本)

    在android4.0以后的sdk里那个脚本就失效了,主要是因为 apkbuilder这个程序不见了: 人家sdk升级,我们的脚本也要跟上趟,修改一下喽. 上网一查,大家的文章还停留在我去年的脚本程度 ...

  8. javascript读取xml文件读取节点数据的例子

    分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> < ...

  9. 问题:jQuery中遍历XML文件时候,获取子节点children不支持的情况(已解决)

    问题描述: 今天在写一个基于 jquery 的读取xml文件的程序时候,需要遍历xml的节点. 代码片段如下: function parse_xml_node(parent,result){ // r ...

随机推荐

  1. SQL SERVER 数据库被标记为“可疑”的解决办法

    问题背景: 日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停 ...

  2. Android Studio 1.1.0版本以上 优化编译

    本文不写内容,只是借用别人链接.不过大概内容都如下链接: http://blog.csdn.net/hyr83960944/article/details/38388429 http://bbs.it ...

  3. js获取IP地址多种方法实例教程

    js获取IP地址方法总结   js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...

  4. 坊间流传着的关于谷歌大牛Jeff Dean的传说

    Jeff Dean,Google的软件架构天才.Google大型并发编程框架Map/Reduce作者. 在Google,公司最顶尖的编程高手Jeff Dean曾发明过一种先进的方法,该方法可以让一个程 ...

  5. Atitit tomcat在linux服务器的启动与其他

    Atitit tomcat在linux服务器的启动与其他 1.1. /home/tomcat/tomcat3/bin/startup.sh1 1.2. 判断启动是否成功 ps -ef|grep tom ...

  6. hdu 1875 畅通工程再续(prim方法求得最小生成树)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1875 /************************************************* ...

  7. angular中的表单数据自定义验证

    之前说过了angular是如何给表单的数据进行基本的,常用的验证的:angular学习笔记(二十)-表单验证 但是在实际工作中,这些验证是远远不够的,很多时候我们需要自定义一些验证规则,以及一些异步, ...

  8. python __name__ = '__main__' 的作用

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  9. 使用canvas制作简单表格

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. SQL 迭代查询语句

    SQL迭代查询 PL/SQL with ORG_Tree(ObjectId,parentID) as ( select a.ObjectId,a.parentID from Ot_Organizati ...