第8章 使用XSLT显示XML

前一章介绍了使用CSS来显示XML文档,但XML+CSS的组合并不能很好地作为视图技术,因为CSS并不是专门为控制XML显示所设计的,在控制XML显示方面功能比较有限。因此实际应用中往往选择XSLT作为控制XML显示的样式单。XSLT的全称是XSL Transformation,它与CSS不同:CSS的作用是直接控制XML文档的可视化效果,而XSLT则用于控制对XML的转换。XSLT是以原有的XML文档为基础,经转换得到另外一份结果文档:这份结果文档既可以是HTML文档,也可以依然是XML文档。

XSLT样式单的实质只是控制源XML文档到结果文档之间的转换关系,它本身并不能进行转换,因此必须要有XSLT转换器才可完成实际的转换工作。目前有大量的程序和工具支持XSLT转换,最常见的有各种浏览器,比如Internet Explorer、Firefox等,不过它们目前都只支持XSLT 1.0规范。除此之外,各种XML编辑器,如XMLSpy、Stylus Studio等,也可以支持XSLT转换,因此开发者可以一边使用这些工具开发XSLT样式单,一边进行转换测试。此外,Java领域也有一些工具,如Xalan、Saxon等,它们对XSLT转换也有很好的支持。

本章要点

alt XSL和XSLT的概念和关系

alt 使用XSLT进行转换

alt 客户端转换和服务器端转换

alt Java领域的两个转换器:Xalan和Saxon

alt 使用template元素定义模板

alt 使用apply-templates处理子节点

alt 使用value-of输出节点内容

alt 匹配节点的模式

alt mode属性

alt XSLT的内置模板规则

alt 使用if进行分支处理

alt 使用for-each循环控制

alt 使用order排序控制

alt 为结果文档创建结果树

alt 在XSLT中使用变量和参数

alt 定义和使用命名模板

alt 使用import导入另一份XSLT样式单

alt 使用include包含另一份XSLT样式单

alt 指定XML结果文档的输出格式

alt 指定HTML结果文档的输出格式

alt 使用XSLT的内置函数

alt 在XMLSpy中开发XSLT样式单