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 标准。