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

2016-02-19 20:31 28 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享如何使用 JavaScript XSLT 处理 XML 文件(支持 Firefox),希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

    最近使用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显示数据的第二种方式。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

主要代码如下:

var xmlDoc;
var xslDoc;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

// 判断浏览器的类型
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!");
}

来源:http://www.tulaoshi.com/n/20160219/1623903.html

延伸阅读
标签: Web开发
一.Xml文件 二.IXMLDOMDocument/DOMDocument简介  2.1 属性 2.1.1  parseError  2.1.2  async.  2.1.3  xml  2.1.4  text 3  2.1.5  attributes  2.1.6  nodeName 2.1.7  documentElement  2...
标签: Web开发
最近更新网站首页广告,ASP.NET的广告控件很容易实现这点,可首页是静态页面,联想广告控件的原理决定采用javascript+xml实现这点方面配置,更新广告时只要更新xml即可,方便了广告轮换 xml结构如下 ad tupianhttp://edu.itbulo.com/UploadFiles_1485/200610/20061010132448597.jpg/tupian dizhihttp://www.seehaha.com/plan//dizhi ...
标签: Web开发
基于web的技术中,分页是一个老的不能再老的,但大家津津乐道的问题,随着xml技术的日渐应用,把xml应用到分页当中,也是一种可能,当然网上的教程很多,当我都是看得稀里糊涂,索性自己写一个,与大家分享、指正。 共有两个文件tmh.htm & tt.xml 源代码如下: tmh.htm _____________________________________________...
标签: Web开发
在本文中主要就如何用SAX解析xml文档进行说明。 要解析的xml片段如下: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Books> <Book id="8542f26f-80d4-4b7d-ab25-f80f72a852ef"> <name id="201"> <strings> <entry> <key>en_US</key> <value> thinking in Java</value> ...
标签: Web开发
项目兼容需要生成一系列的XML文件,总结了下XML文件的生成基本方式 XmlTextWriter w = new XmlTextWriter("C:XML文件名.xml", Encoding.Unicode); //Encoding.Unicode为生成XML文件的编码格式,到时候合输出:?xml version="1.0" encoding="utf-16"? w.Formatting = Formatting.Indented; // 这个比较重要,这个属性说明xml文件里面的内容是...

经验教程

844

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部