XSLT 简介

XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。

XPath 是一种用于在 XML 文档中进行导航的语言。


什么是 XSLT?

  • XSLT 指 XSL 转换(XSL Transformations)。
  • XSLT 是 XSL 中最重要的部分。
  • XSLT 可将一种 XML 文档转换为另外一种 XML 文档。
  • XSLT 使用 XPath 在 XML 文档中进行导航。
  • XPath 是一个 W3C 标准。

XSLT 历史

XSLT受到函数式编程语言和字符串模式匹配语言(如SNOBOL和AWK)的影响。它最直接的前辈是DSSSL,即为SGML的文件样式描述语言。

XSLT 1.0版本:XSLT是二十世纪末万维网联盟(W3C)可扩展样式表语言(XSL)开发工作的一部分,该项目还产出了XSL-FO和XPath。编订XSLT规范的委员会成员,包括编辑James Clark,具备DSSSL的工作经验。W3C于1999年11月推荐发表了XSLT 1.0规范。

XSLT 2.0:XSL工作组在2001年尝试新创1.1版本中断之后,与XQuery工作组合作,产出了根基于XML纲要之上的XPath 2.0,具有更丰富的数据模型和类型系统;而XSLT 2.0是由Michael Kay主导开发的,在2007年1月成为推荐状态。然而至2010年,XSLT 1.0仍然被广泛使用,因为客户端的网络浏览器尚未内置支持XSLT 2.0,或因为处于LAMP架构环境中。

XSLT 3.0:于2017年6月8日成为W3C推荐书。主要新功能有:

  • 流转换:在以前版本中,整个输入数据档必须在处理之前被读入内存,在处理完成之前无法写到输出(尽管Saxon有流扩展)。这个工作草案允许XML流,这对于处理内存容纳不下的过大数据档,或者在XML管道中连串变换时,是有用处的。
  • 改进大型样式表的模块化。
  • 改进动态错误的处理,例如xsl:try指令。
  • 函数可以作为其它(高阶)函数的参数。

XSLT = XSL 转换

XSLT 是 XSL 中最重要的部分。

XSLT 用于将一种 XML 文档转换为另外一种 XML 文档,或者可被浏览器识别的其他类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML 元素转换为 (X)HTML 元素来完成这项工作的。

通过 XSLT,您可以向或者从输出文件添加或移除元素和属性。您也可重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。

描述转化过程的一种通常的说法是,XSLT 把 XML 源树转换为 XML 结果树


XSLT 使用 XPath

XSLT 使用 XPath 在 XML 文档中查找信息。XPath 被用来通过元素和属性在 XML 文档中进行导航。

如果您希望首先学习 XPath,请访问本站的 XPath 教程


XSLT 工作原理

在转换过程中,XSLT 使用 XPath 来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到,XSLT 就会把源文档的匹配部分转换为结果文档。


XSLT 是 W3C 标准

XSLT 在 1999 年 11 月 16 日被确立为 W3C 标准。如需更多有关 W3C 的 XSLT 活动的信息,请访问本站的 W3C 教程


XSLT 的浏览器支持

几乎所有主要的浏览器均支持 XML 和 XSLT。

Mozilla Firefox

从 1.0.2 版本开始,Firefox 就已开始支持 XML 和 XSLT(以及 CSS)。

Mozilla

Mozilla 含有用于 XML 解析的 Expat,并支持 XML + CSS。Mozilla 同样支持命名空间。Mozilla 可执行 XSLT。

Netscape

从版本 8 开始,Netscape 就开始使用 Mozilla 引擎,所以它对 XML / XSLT 的支持与Mozilla是相同的。

Opera

从版本 9 开始,Opera 已开始支持 XML 和 XSLT(以及 CSS)。版本 8 仅支持 XML + CSS。

Internet Explorer

从版本 6 开始,Internet Explorer 已开始 XML、命名空间、CSS、XSLT 以及 XPath。版本 5 不兼容官方的 W3C XSL 标准。