Smile 笑容

使用ajaxslt代替微软的msxml3.0以支持其他浏览器

AJAXSLT is an implementation of XSL-T in JavaScript, intended for use in fat web pages, which are nowadays referred to as AJAX applications. Because XSL-T uses XPath, it is also an implementation of XPath that can be used independently of XSL-T.

使用ajaxslt代替微软的msxml3.0以支持其他浏览器

目前大富翁(www.delphibbs.com)使用的 msxml 3.0 限制的大富翁论坛的通用性,已经很多年了。
现在google提供了一个开源的javascript版 程序, ajaxslt (http://goog-ajaxslt.sourceforge.net/)可以解决大富翁的一些问题。
使用这个系统后的速度影响目前还不清楚,但是如果缓存js后,应该也会不错。

而在通用性方面,将减少一份限制,多了一份通用性。

英文版说明

AJAXSLT is an implementation of XSL-T in JavaScript, intended for use in fat web pages, which are nowadays referred to as AJAX applications. Because XSL-T uses XPath, it is also an implementation of XPath that can be used independently of XSL-T.


XSL-T stands for XSL Transformations. XSL stands for eXtensible Stylesheet Language

XSL-T is a language for transforming XML documents from one language to another. An XSL-T style sheet would be used, for instance, to convert the unformatted content from an XML document into the a fully-formatted HTML document.

AJAXSLT takes this process one step forward, by implementing XSL-T in Javascript and having it run in your browser. Thus, your web browser can fetch XML documents directly from the server, and perform the format conversion locally; thus saving time and bandwidth.

AJAXSLT is distributed under the terms of the BSD License.

先去下载google ajaxslt的源码包

1、用xmlhttprequest从服务器获得xml数据放于id="xml"的div中

也可以从各种封装的xmlhttprequest框架中直接获得xml,这种方式更好一些

2、对应xsl放置于id="xslt"的div中

3、通过Ajaxslt组合成html,结果将显示于id="htmldisplay"的div中

加载如下js


  <script src="../misc.js" type="text/javascript"></script>
  <script src="../dom.js" type="text/javascript"></script>
  <script src="../xpath.js" type="text/javascript"></script>
  <script src="../xslt.js" type="text/javascript"></script>

然后

  var xml = xmlParse(el('xml').value);
  var xslt = xmlParse(el('xslt').value);
  var html = xsltProcess(xml, xslt);
  document.getElementById('html').value = html;
  document.getElementById('htmldisplay').innerHTML = html;


很简单就完成了xml到html的转化,而xpath/xsl的强大功能使得我们可以非常更方面的处理xml数据

备注:

misc.js:一些常量定义和 helper 函数,还有 log 的实现。

dom.js:XML DOM 接口的 JS 实现,主要的函数是 xmlParse( XMLString ),调用成功后就可以用标准 DOM 方式来操控返回的 XDocument 了。

xpath.js:XPath 的 JS 实现。

xslt.js:XSLT 的 JS 实现,要用到里面的 xsltProcess( XML, XSLT ),给定 XML 和 XSLT 得到转换的结果。