XSLT <xsl:output> 元素
定义和用法
<xsl:output> 元素定义了输出文档的格式。
注释:<xsl:output> 是顶层元素(top-level element),必须是 <xsl:stylesheet> 或 <xsl:transform> 的子节点。
语法
<xsl:output
method="xml|html|text|name"
version="string"
encoding="string"
omit-xml-declaration="yes|no"
standalone="yes|no"
doctype-public="string"
doctype-system="string"
cdata-section-elements="namelist"
indent="yes|no"
media-type="string"/>
属性
属性 | 值 | 描述 |
---|---|---|
method |
|
可选。定义输出的格式。默认是 XML。Netscape 6 仅支持 "html" 和 "xml"。 |
version | string | 可选。设置输出格式的 W3C 版本号。(仅在 method="html" or method="xml" 时使用)。 |
encoding | string | 可选。设置输出中编码属性的值。 |
omit-xml-declaration |
|
可选。 "yes" 规定在输出中省略 XML 声明 (<?xml...?>)。 "no" 规定应在输出中包含 XML 声明。默认是 "no"。 |
standalone |
|
可选。规定 XSLT 处理器是否应输出独立文档声明;该值必须为 yes 或 no。默认是 "no"。Netscape 6 不支持该属性。 |
doctype-public | string | 可选。规定 DTD 中要使用的公共标识符。即输出中 DOCTYPE 声明的 PUBLIC 属性的值。 |
doctype-system | string | 可选。规定 DTD 中要使用的系统标识符。即输出中 DOCTYPE 声明的 SYSTEM 属性的值。 |
cdata-section-elements | namelist | 可选。一个空格分隔的元素列表,这些元素的文本内容应作为 CDATA 部分来输出。 |
indent |
|
可选。在输出结果树时是否要增加空白;该值必须为 yes 或 no。Netscape 6 不支持该属性。 |
media-type | string | 可选。定义输出的 MIME 类型(数据的媒体类型)。默认是 "text/xml"。Netscape 6 不支持该属性。 |
method 属性
标识用于输出结果树的总体方法。如果没有前缀,则标识此文档中指定的方法,必须是 "xml"、"html"、"text" 或不是 NCName 的限定名 之一)。如果有前缀,则展开并标识输出方法。
method 属性的默认值的选择如下所示。如果下列任何条件为真,默认的输出方法为“html”:
结果树的根节点包含元素子级。
结果树中根节点的第一个元素子级(即文档元素)的扩展名称包含本地部分“html”(任意大小写组合)和空命名空间 URI。
结果树中根节点的第一个元素子级之前的任何文本节点只包含空白字符。
否则,默认的输出方法为 "xml"。如果没有 <xsl:output> 元素或没有 <xsl:output> 元素指定了 method 属性的值,应使用默认的输出方法。
实例
例子 1
在本例中,输出是 XML 文档,版本为 1.0。字符编码方式被设置为 "ISO-8859-1",输出会进行缩进,以增进可读性:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
...
...
</xsl:stylesheet>
例子 2
在本例中,输出是 HTML 文档,版本是 4.0。字符编码方式被设置为 "ISO-8859-1",输出会进行缩进,以增进可读性:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" encoding="iso-8859-1" indent="yes"/>
...
...
</xsl:stylesheet>