<xsl:stylesheet> 元素
指定 XSLT 文件的文档元素,该文件中包含所有其他 XSLT 元素。
指定 XSLT 文件的文档元素,该文件中包含所有其他 XSLT 元素。 此元素是 <xsl:transform>
元素的同义词。
<xsl:stylesheet
id = id
extension-element-prefixes = NCNames
exclude-result-prefixes = NCNames
version = number>
</xsl:stylesheet>
特性
- id
便于嵌入 XSLT 文件的唯一标识符。
- extension-element-prefixes
要作为扩展命名空间使用的命名空间。 该值是通过空白分隔的命名空间前缀列表。 绑定到每个前缀上的命名空间指定为扩展命名空间。 通过在命名空间前缀列表中加入#default
,可以将默认命名空间(通过xmlns
声明)指定为扩展命名空间。 在样式表中以具有extension-element-prefixes
的元素为根节点的子树中,将命名空间指定为扩展命名空间有效;以<xsl:stylesheet>
元素为根节点的子树不包括任何由该<xsl:stylesheet>
元素的子级导入或加入的样式表。
- exclude-result-prefixes
作为已排除命名空间的命名空间统一资源标识符 (URI)。 该值是通过空白分隔的命名空间前缀列表。 绑定到每个前缀上的命名空间指定为排除的命名空间。 通过在命名空间前缀列表中加入#default
,可以将默认命名空间(通过xmlns
声明)指定为排除的命名空间。 在样式表中以具有exclude-result-prefixes
的元素为根节点的子树中,将命名空间指定为排除的命名空间有效;以<xsl:stylesheet>
元素为根节点的子树不包括任何由该<xsl:stylesheet>
元素的子级导入或加入的样式表。
- version
必选。 XSLT 文件所需的 XSLT 版本。 对于此版本的 XSLT,值应设置为"1.0"
。
元素信息
出现次数 |
1 |
父元素 |
(无父元素) |
子元素 |
xsl:attribute-set、xsl:import、xsl:include、xsl:output、xsl:param、xsl:template、xsl:variable、msxsl:script |
备注
每个 XSTL 文件必须将 <xsl:stylesheet>
声明为其文档元素。
样式表可以使用一系列模板规则声明 (<xsl:template>
) 规定对数据集的明确转换。 可以使用 <xsl:include>
和/或 <xsl:import>
合并其他样式表;这样可以重新使用现有的已测试模板规则。 样式表还可以支持在整个转换过程中使用全局变量 (<xsl:param>
) 和命名的常量 (<xsl:variable>
)。 可以使用 <xsl:param>
元素将参数传递到样式表中。 通过使用扩展元素 <msxsl:script>
,样式表甚至可以实现自定义函数,尽管通常不鼓励这样做。
下面的示例显示包含多个公共命名空间的 <xsl:stylesheet>
元素。
XSLT 样式表必须至少为 XSL 转换声明命名空间。 在 MSXML 版本 4.0 以及更高版本中,此命名空间必须进行以下声明:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
如果处理其他命名空间中的元素或数据类型,样式表必须还要声明相关的命名空间。 例如,以下 XSLT 样式表声明规定,将使用为 Microsoft 扩展和 XSL 格式化对象 (XSL-FO) 定义的附加 XML 词汇。
示例
该示例显示包含一组模板的完整 XSLT 文件。 根模板 (match="/"
) 定义总体输出文档的结构,其他模板定义 <name>
、<address>
和 <phone>
元素的结构。 该 HTML 输出文件是在命令提示符处使用 msxml.exe 生成的。
XML 文件 (customers.xml)
XSLT 文件 (customers.xsl)
输出
以下是格式化输出:
以下是处理器输出:
<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>
</BODY>
</HTML>