--------------------------------------------------------------------------------
定义与用法
导入的Template的样式表比宿主xsl的样式表优先级要低.
--------------------------------------------------------------------------------
语法
Attributes
None
例子
假设我们有一个样式表叫"standard.xsl",它包含一个为message elements定义的template
宿主样式表要能导入"standard.xsl",并且修改message elements,像如下这样:
结果会把message elements转变成如下这样:
...
用这种方式,可以实现xsl的重用。
--------------------------------------------------------------------------------
定义与用法
如果我们在
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
select expression select表达式是可选的用于指定要处理的节点。一个星号*选择了全部的节点集。如果属性省略了,那么所有的子节点都将被选择。
mode name mode也是可选的,如果对一个相同的元素有很多定义,那么用mode可以区分他们。
例子 1
对于文档中的每一个tiltle元素用h1元素包装。
例子 2
对于文档中的所有message 元素的子元素tiltle用h1元素包装。
例子 3
对于文档中的所有message 元素的所有子元素用h1元素包装,mode属性被置为”big”。
定义与用法
说明:当有相同的名称时
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name attributename 必需的。指定属性的名称
namespace URI 可选。为属性定义命名空间。
例子 1
在picture元素里添加一个source属性:
例子 2
在picture元素里添加一个source属性,并用"images/name"付值:
--------------------------------------------------------------------------------
定义与用法
说明:必须是
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name name 必需。用来指定attribute-set的名称。
use-attribute-sets name-list 可选。
例子 1
建立一个可以应用于任何输出元素的属性集:
定义与用法
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name templatename 必须。指定被调用的template的名字
例子 1
当发现car元素时,调用名为"description"的template
--------------------------------------------------------------------------------
定义与用法
与
当
当
说明:对于简单的条件选择,用
--------------------------------------------------------------------------------
语法
属性
无
例子 1
下面的代码展示了如何将价格高于10 的CD的artist列背景颜色设为粉红色
My CD Collection
Title
Artist
例子 2
声明一个名为"color"的变量。把当前元素color属性的值赋给"color"变量。如果当前元素没有color属性,则"color"变量的值将为"green":
定义和用法
--------------------------------------------------------------------------------
语法
属性
无
例子 1
--------------------------------------------------------------------------------
定义与用法
说明:当前节点的命称空间被自动拷贝,但是子节点和当前节点的属性不会被自动拷贝!
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
use-attribute-sets name-list 可选。
例子 1
把message节点拷贝到输出文档中:
定义与用法
注意:命名空间节点,自节点和当前节点的属性都会被自动拷贝。
提示:这个元素能够向输出的不同位置插入多个相同节点的拷贝。
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
select expression 需要,用来指定要拷贝的部分
例子1
Element
Description
--------------------------------------------------------------------------------
定义与用法
每个国家使用不同的字符分割整数部分,以及整数分组符号。
用
这个元素是个顶级元素。
format-number()函数可以用name指定
--------------------------------------------------------------------------------
语法
decimal-separator="char"
grouping-separator="char"
infinity="string"
minus-sign="char"
NaN="string"
percent="char"
per-mille="char"
zero-digit="char"
digit="char"
pattern-separator="char"/>
属性
属性 值 说明
name name 可选。指定这个format的name
decimal-separator char 可选。指定小数点,默认是“.”
grouping-separator char 可选。指定千分割符,默认是“,”(比如2,000)
infinity string 可选。指定“无穷大”字符串,默认是“Infinity”
minus-sign char 可选。指定负数符号。默认是“-”
NaN string 可选。当值不是数字时,指定使用的字符串。默认是“NaN”
percent char 可选。指定百分号,默认是“%”
per-mille char 可选。指定千分号,默认是“‰”
zero-digit char 可选。指定零。默认是“0”
digit char 可选。指定字符用来指出需要使用数字的地方。默认是#(看下面的例子您会明白)
pattern-separator char 可选。指定字符用来在一个样式中分割正数和负数,默认是“;”
例子 1
下面的这个例子展示了如何格式化为欧洲流通样式。(注意在format-number()中的第三个变量运用了定义的
(PS:欧洲使用这种标准?我也是才知道)
下面这个例子用“.”作为千分割符,用“;”作为小数点。
输出: 26.825,80
--------------------------------------------------------------------------------
定义和用法
--------------------------------------------------------------------------------
语法
namespace="URI"
use-attribute-sets="namelist">
属性
属性 值 说明
name name 必须。指定创建的元素的名称(元素名称可以动态赋予,比如
namespace URI 可选。指定元素的名称空间(可以动态赋予,比如:
use-attribute-sets namelist 可选。指定添加的属性列表。
例子 1
创建一个名为“singer”的元素,此元素包含每一个artist元素的值。
--------------------------------------------------------------------------------
定义和用法
The
--------------------------------------------------------------------------------
语法
属性
无
例子 1
这个例子假设处理器对
--------------------------------------------------------------------------------
定义与用法
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
select expression 必须。指定要处理的节点。
例子 1
在每个cd节点中循环,使用
My CD Collection
Title
Artist
例子 2
在每个cd节点中循环,使用
My CD Collection
Title
Artist
--------------------------------------------------------------------------------
定义和用法
提示:可以使用
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
test expression 必须。指定要被检查的条件。
Titles:
例子 1
选择CD中price的值大于10的。
My CD Collection
Title
Artist
例子 2
展示每一个CD的title。
1、在每一个CD-title后插入“,”(条件:不是最后一个)
2、如果是倒数第二个插入“, and”
3、如果是最后一个插入“!”
My CD Collection
--------------------------------------------------------------------------------
定义和用法
说明:一个被导入的样式表比导入它的样式表的优先级要低。
说明:这个元素必须在
说明:在Netscape 6中不支持import优先级规则,所以这个元素在Netscape 6中与
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
href URI 必须。指定要被导入的样式表的URI
例子 1
假设你有一个称为"cdcatalog_ex3.xsl"的样式表。
My CD Collection
Title
Artist
第二个称为"cdcatalog_import.xsl"的样式表导入"cdcatalog_ex3.xsl":
说明:这个例子不能运行在Netscape 6中,因为它不支持
--------------------------------------------------------------------------------
定义和用法
说明:Included的样式表与including的样式表有相同的优先级。
说明:这个元素必须作为
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
href URI 必须。指定include的样式表的URI。
--------------------------------------------------------------------------------
定义与用法
说明:一个key不一定是唯一的!
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name name 必须。指定key的名称。
match pattern 必须。定义key将应用的节点。
use expression 必须。Key对于每一个节点的值。
例子 1
假设你有一个称为"persons.xml"的XML文件:
你可以在一个XSL文件中这样定义一个key:
查找id="050676"的person。
Id:
Name:
--------------------------------------------------------------------------------
定义与用法
这个元素能够包含几乎所有其它的XSL元素(比如:
当一个错误发生时,Terminate属性为您提供选择是继续执行还是退出。
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
terminate yes no 可选。当消息写到输出后“yes”将终止执行,而“no”继续执行。默认是“no”。
Title:
例子 1
检查artist是否是一个空串。如果是,我们结束XSL处理并显示一条消息:
Artist:
Error: Artist is an empty string!
--------------------------------------------------------------------------------
定义与用法
说明:
--------------------------------------------------------------------------------
语法
result-prefix="prefix|"#default"/>
属性
属性 值 说明
stylesheet-prefix prefix #default 必须。指定您想要改变的名称空间。
result-prefix prefix #default 必须. 指定输出想要的名称空间。
例子 1
wxsl前缀在输出中被转换为xsl前缀。
xmlns:wxsl="http://www.w3schools.com/w3style.xsl">
--------------------------------------------------------------------------------
定义与用法
--------------------------------------------------------------------------------
语法
level="single|multiple|any"
from="expression"
value="expression"
format="formatstring"
lang="languagecode"
letter-value="alphabetic|traditional"
grouping-separator="character"
grouping-size="number"/>
属性
Attribute Value Description
count expression 可选. An XPath expression that specifies what nodes areto be counted
一个XPath表达式用来指定什么样的节点被计数。
level single multiple any
可选。对数字串产生像目录树一样的分级。
&S226;single (默认)
&S226;multiple (多级)
&S226;any (Netscape 6不支持)
from expression 可选。用一个XPath表达式指定从哪里开始计数。
value expression 可选。由用户指定一个数字来产生数字序列。
format formatstring
可选。定义了输出的数字的样式。可以是下述之一:
&S226;format="1" results in 1 2 3 . .
&S226;format="01" results in 01 02 03 (not supportedby Netscape 6)
&S226;format="a" results in a b c . . (not supported byNetscape 6)
&S226;format="A" results in A B C. . (not supported byNetscape 6)
&S226;format="i" results in i ii iii iv . . (not supportedby Netscape 6)
&S226;format="I" results in I II III IV . . (not supported by Netscape 6)
lang languagecode 可选。指定语言的字母表。(ps:有疑问)
Netscape 6不支持。
letter-value alphabetic traditional 可选。指定数字化时是用字母表还是传统。默认是字母表。(ps:有疑问)
grouping-separator character 可选,指定数字组的分割符,默认是”,”
grouping-size number 可选。指定多少个数字为一组,使用一个分割符,默认是3
例子1
输出:
250.000
例子2
输出:
25,00,00
例子3
输出:
X#I#I
例子 4
--------------------------------------------------------------------------------
定义与用法
--------------------------------------------------------------------------------
语法
属性
无
例子 1
下面这段代码将把cd的price高于10的artist列的背景色设为粉红色,OTHERWISE只是打印artist的name:
My CD Collection
Title
Artist
例子 2
声明一个名为"color"的变量。设置变量的值为当前元素的color属性的值。如果当前元素没有color属性,"color"的值将为"green":
--------------------------------------------------------------------------------
定义与用法
说明:
--------------------------------------------------------------------------------
语法
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 html text name 可选。定义了输出的格式。默认是XML(如果根节点的第一个子节点是并且没有其他高优先级的文本节点,那么默认是HTML)
Netscape 6只支持"html" 和 "xml"
version string 可选。设置版本。当用method="html" 或者 method="xml"时才用到。
encoding string 可选。设置输出的编码。
omit-xml-declaration yes no 可选。如果为"yes",则XML声明()在输出中会被省略,否则就会加入。默认是"no"
standalone yes no 可选。"yes"时standalone要在输出中声明,"no"时不必在输出中声明。默认是"no"。
Netscape 6不支持
doctype-public string 可选。设置输出的public DOCTYPE值。
doctype-system string 可选。设置输出的system DOCTYPE。
cdata-section-elements namelist 可选。用空格来分割内容为字符数据类型的元素。(ps:有疑问)
indent yes no 可选。缩进选项。"yes"时要根据结构缩进,"no"时不缩进。默认是"yes"
Netscape 6不支持
media-type string 可选。定义输出的MIME类型。默认是"text/xml"
Netscape 6不支持
例子 1
下面这段代码以XML格式输出,xml版本是1.0,编码是"ISO-8859-1",并且为了易读文档要缩进。
例子 2
下面这段代码以HTML格式输出,HTML版本是4.0,编码是"ISO-8859-1",并且为了易读文档要缩进。
--------------------------------------------------------------------------------
定义与用法
说明:如果声明的是一个高级(top-level)的元素那么参数是全局的,
如果在一个样规中声明那么是局部的。
--------------------------------------------------------------------------------
语法
select="expression">
属性
属性 值 说明
name name 必须。指定参数的名称。
select expression 可选。指定一个XPath表达式作为参数的默认值。
Title:
例子 1
--------------------------------------------------------------------------------
定义与用法
说明:因为保留空白空间是默认设置,所以只有当
说明:
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
elements list-of-element-names 必须。对列表中的元素加上/除去白色空间。
说明:列表可以包含“*”和“prefix:*”这样所有的元素或者一个特定的命名空间所有的元素能够加入。
例子 1
下面的这个例子,title 和 artist 元素保留白色空间,country, company, price, 和 year 元素移除白色空间:
--------------------------------------------------------------------------------
定义与用法
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name process-name 必须。指定执行指令的名称。
例子 1
下面的代码:
href="style.css" type="text/css"
生成如下的标记:
--------------------------------------------------------------------------------
定义与用法
说明:
--------------------------------------------------------------------------------
语法
lang="language-code"
data-type="text|number|qname"
order="ascending|descending"
case-order="upper-first|lower-first"/>
属性
属性 值 说明
select XPath-expression 可选。指定根据哪一个node/node-set为关键字来排序。
lang language-code 可选。指定用哪一种语言来排序。
data-type text number qname 可选。指定数据用来排序的数据类型。默认是“text”
order ascending descending 可选。指定排序方式。默认是升序。
case-order upper-first lower-first 可选。指定是按大写字母先排序还是按小写字母先排序。
例子 1
The example below will sort the output by artist:
下面例子的输出会以artist为关键字排序。
My CD Collection
Title
Artist
--------------------------------------------------------------------------------
定义与用法
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
version version 必须。指定样式表的XSLT版本
extension-element-prefixes list 可选。
扩展元素的命名空间前缀(以空格分割)
Netscape 6不支持该属性
exclude-result-prefixes list 可选。
不因该在输出中出现的扩展元素的命名空间前缀(以空格分割)
id name 可选。样式表的唯一id
Netscape 6不支持该属性
例子 1
例子 2
--------------------------------------------------------------------------------
定义与用法
The
match属性用来匹配XML节点。也可以匹配全部XML文档(比如match="/")
说明:
--------------------------------------------------------------------------------
语法
Attributes
属性 值 说明
name name 可选。指定该template的名称。
说明:如果这个属性被省略了,一定会有match属性。
match pattern 可选。template匹配的模式
说明:如果这个属性被省略了,一定会有name属性
mode mode 可选。
指定这个template的模式
priority number 可选。
用一个数字指出了template的数字的优先级
例子
My CD Collection
Title:
Artist:
--------------------------------------------------------------------------------
定义与用法
提示:这个元素可以包含文字,实体引用和任何非xml元素的数据。
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
disable-output-escaping yes no 可选。当为"yes"时,特殊的字符(比如"<")照原样输出,当为"no"时,输出为"<"。默认是"no"。
这个属性在Netscape 6中不被支持
Titles:
例子 1
展示每一个CD的title。
1、在每一个CD-title后插入“,”(条件:不是最后一个)
2、如果是倒数第二个插入“, and”
3、如果是最后一个插入“!”
显示每一个CD的标题。
My CD Collection
--------------------------------------------------------------------------------
定义与用法
说明:value使用XPath表达式取值,使用像文件系统那样的方法用(/)选择子文件夹。
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
select expression 必须。一个XPath表达式用来指定从哪一个节点/属性来取值。
disable-output-escaping yes no 可选。当为"yes"时,特殊的字符(比如"<")照原样输出,当为"no"时,输出为"<"。默认是"no"。
例子 1
My CD Collection
Title
Artist
例子 2
My CD Collection
Title
Artist
--------------------------------------------------------------------------------
定义与用法
说明:当声明为高级(top-level)元素时,变量是全局的,当在一个template中声明时,作为局部变量。
说明:一旦您设置了一个变量的值,您就不能修改这个值!
提示:您可以通过增加
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name name 必须。指定变量名称
select expression 可选。指定变量的值
例子 1
如果select属性被设置了,那么
下面的两行示例代码分别给变量"color"赋值为"red"。
例子 2
如果
例子 3
下面的这个例子用
title
year
作为变量传递给输出:
title
year
year = 1982
year = 1985
--------------------------------------------------------------------------------
定义和用法
说明:
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
test boolean-expression 必须。指定执行条件。
例子 1
下面的这段代码将把cd /price高于10 artist列的背景色设为粉红色。
My CD Collection
Title
Artist
例子 2
声明一个名为"color"的变量。把当前元素color属性的值赋给"color"变量。如果当前元素没有color属性,则"color"变量的值将为"green":
--------------------------------------------------------------------------------
定义与用法
说明:
说明:
提示:您可以通过两种方式向
1、用select属性。
2、在
--------------------------------------------------------------------------------
语法
属性
属性 值 说明
name name 必须。指定参数的名字
select expression 可选。 An XPath expression that defines the value of the parameter
一个XPath表达式定义了参数的值
例子 1
Title:
例子2
这个例子的输出结果为
11 + 33 = 44 55 + 111 = 166