使用 XSLT 转换 XML
概述
内容和表现形式的分离是 XML 的一个关键设计特性。XML 文档的结构旨在反映和阐明内容各个方面之间重要的关系,不受需要提供任何指示关于这些数据最终如何呈现的限制。这种智能化的结构尤其重要,因为越来越多的数据传输是自动化的,并且发生在通过网络连接的高度异构机器之间。
然而,最终,存储在 XML 文档中的许多内容都需要呈现给人类读者。由于浏览器提供了一个熟悉且高度灵活的界面,因此它是交付此类 XML 内容呈现版本的理想机制。Firefox 从头开始利用各种 XML 技术构建,在其内部集成了处理原始 XML 文档和用于样式化并将其布局以进行 HTML 显示的专用样式表所需的所有机制,通过客户端处理减少服务器负载。
目前,Gecko(Firefox 背后的布局引擎)支持两种形式的 XML 样式表。对于外观的基本控制——字体、颜色、位置等——Gecko 使用 CSS。
我们在这里关注的是 Gecko 支持的第二种样式表:XSLT 样式表。XSLT 代表可扩展样式表语言/转换,这个名称很贴切。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 (大部分支持)
- 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() (不支持)
进一步阅读
原文档信息
- 版权信息:版权所有 © 2001-2003 Netscape。保留所有权利。
- 注意:本文转载自 DevEdge 网站。