• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 网站开发 >> JavaScript >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • 如何打开IE/Firefox的JavaSc..
  • 学习Ajax教程,详细了解Get与..
  • ajax中文乱码解决方法
  • javascript操作select相关方..
  • 在网页中控制wmplayer播放器
  • 用js写的一个跑马灯
  • JS获取各种浏览器窗口的大小
  • 网页常用特效整理:初级篇
  • 理解JavaScript函数
  • 网页常用特效整理:高级篇
  • 网页图片特效小技巧
  • 网页常用特效整理:中级篇
  • 关于Ajax responseText 的一..
  • JavaScript教程:onmouseover..
  • AS常用代码集锦
  • 用js实现select对div的隐藏与..
  • Javascript 编程规范
  • 用javascript实现随机跳转页..
  • XMLHTTPRequest的属性和方法..
  • 用鼠标控制滚动的菜单条!(J..
 
 

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

  • 日期:2008-09-02     人气:     出处:     作者:
  • 字体大小:
  • 小
  • 中
  • 大

    最近使用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 错误“缺少十六进制数字”的处理
  • 使用 JavaScript 获取 table 行号和列号
  • JAVASCRIPT 贪吃蛇
  • Javascript 调用UTF-8页面
  • 怎样从 Javascript 传递一个变量到 PHP
  • JavaScript 调用 Asp.Net 服务器端的事件
  • javascript 获取GET方法的参数
  • JavaScript FSO属性大全
  • 关于搜索引擎页面分析中的 javascript 处理的2个思路
  • javascript OOP:实现继承、多态与封装
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号  

感谢:点击网络 联网科技 天盈信息 中国E速网 59互联  提供服务器及带宽赞助