使用 XSLT 转换 XML
概览
内容和表示分离是 XML 的一个关键设计特性。XML 文档的结构被设计成反映和阐明内容本身的各方面之间的重要关系,而不受需要提供有关此数据最终应该如何呈现的任何指示的障碍。这种智能的结构尤为重要,特别是在越来越多的数据在通过网络连接的高度异构的机器之间自动化传输的趋势下。
然而,最终存储在 XML 文档中的大部分内容都需要呈现给人类。因为浏览器提供了一个熟悉且高度灵活的界面,所以它是传递此类呈现给人类的 XML 内容的理想机制。Firefox 利用各类 XML 技术从头开始构建,将处理原始 XML 文档和用于为显示的 HTML 设置样式和布局的专用样式表所需的机制合并到一起,从而通过客户端处理来减少服务器的负载。
目前,Gecko(Firefox 的排版引擎)支持两种形式的 XML 样式表。对于外观的基本控制(字体、颜色、位置等),Gecko 使用 CSS。
我们这里的重点是 Gecko 支持的第二种样式表:XSLT 样式表。XSLT 代表可扩展样式表转换语言(eXtensible Stylesheet Language/Transform),这个名字很贴切。XSLT 允许样式表的作者以两种重要的方式转换主 XML 文档:对文档进行操作和排序,包括在需要的情况下进行整体重排序,以及将内容转换为不同的格式(以 Firefox 为例,则重点是将其即时转换为后续可用浏览器显示的 HTML)。
XSLT/XPath 参考
元素
- xsl:apply-imports(支持)
- xsl:apply-templates(支持)
- xsl:attribute(支持)
- xsl:attribute-set(支持)
- xsl:call-template(支持)
- xsl:choose(支持)
- xsl:comment(支持)
- xsl:copy(支持)
- xsl:copy-of(支持)
- xsl:decimal-format(支持)
- xsl:element(支持)
- xsl:fallback(不支持)
- xsl:for-each(支持)
- xsl:if(支持)
- xsl:import (mostly supported)
- xsl:include(支持)
- xsl:key(支持)
- xsl:message(支持)
- xsl:namespace-alias(不支持)
- xsl:number(部分支持)
- xsl:otherwise(支持)
- xsl:output(部分支持)
- xsl:param(支持)
- xsl:preserve-space(支持)
- xsl:processing-instruction
- xsl:sort(支持)
- xsl:strip-space(支持)
- xsl:stylesheet(部分支持)
- xsl:template(支持)
- xsl:text(部分支持)
- xsl:transform(支持)
- xsl:value-of(部分支持)
- xsl:variable(支持)
- xsl:when(支持)
- xsl:with-param(支持)
轴
函数
- boolean()(支持)
- ceiling()(支持)
- concat()(支持)
- contains()(支持)
- count()(支持)
- current()(支持)
- document()(支持)
- element-available()(支持)
- false()(支持)
- floor()(支持)
- format-number()(支持)
- function-available()(支持)
- generate-id()(支持)
- id()(部分支持)
- key()(支持)
- lang()(支持)
- last()(支持)
- local-name()(支持)
- name()(支持)
- namespace-uri()(支持)
- normalize-space()(支持)
- not()(支持)
- number()(支持)
- position()(支持)
- round()(支持)
- starts-with()(支持)
- string()(支持)
- string-length()(支持)
- substring()(支持)
- substring-after()(支持)
- substring-before()(支持)
- sum()(支持)
- system-property()(支持)
- translate()(支持)
- true()(支持)
- unparsed-entity-url()(不支持)
扩展阅读
原始文档信息
- 版权信息:Copyright © 2001-2003 Netscape. All rights reserved.
- 注意:这篇转载文章最初是 DevEdge 的一部分。