XSLT 参考手册

enjoyit

贡献于2012-12-12

字数:0 关键词: 前端技术

XSLT 元素使用说明 原始作者 中文整理人 整理时间 版本 说明 W3C school skater 2005-8-17 0.1 XSLT 初稿 说明 W3C school 代码 互联网 MSDN 0.2 增加函数说明 互联网 2005-8-21 0.21 增加运算符说明 前言 这段时间在看有关 XML 方面的东西,苦于网上找不到比较全面的中文教程, 于是去 W3C 找到相关英文资料读,想到以后的朋友可能也会碰到这样的问题, 于是把学到的东西整理与此。本文档系翻译 W3C School 上的相关文章,翻译中 很多部分不是很准确,希望大家能帮我指出来。另外本文档会一直更新,我会陆 续把其他的 XML 使用说明放上来。本文档中所有代码,本人都调试过,都可以 正常使用。 本文档版权归原作者所有。 在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。 如需部分或者全文引用,请事先征求作者意见。 如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及 时反馈给作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。 (呵呵,这段是拷贝夏昕的话,希望夏昕别在意)。 我的邮箱是xqflying@163.com skater 2005-8-21 目录 XSLT 元素................................................................................................................................3 元素................................................................................................3 元素.............................................................................................4 元素...........................................................................................................5 元素 ...................................................................................................6 元素....................................................................................................7 元素 .............................................................................................................7 元素..........................................................................................................9 元素...............................................................................................................9 元素........................................................................................................10 元素..............................................................................................12 元素..........................................................................................................13 元素..........................................................................................................14 元素 .......................................................................................................15 元素....................................................................................................................17 元素..........................................................................................................19 元素.........................................................................................................20 元素...............................................................................................................21 元素.......................................................................................................22 元素 ..........................................................................................23 元素 ........................................................................................................24 元素.....................................................................................................26 元素 ..........................................................................................................28 元素 ..........................................................................................................29 元素 .......................................................30 元素.................................................................................32 元素 ..............................................................................................................33 元素...................................................................34 元素.......................................................................................................35 元素 ..............................................................................................................37 元素.......................................................................................................38 元素........................................................................................................39 元素............................................................................................................42 元素..................................................................................................43 XSLT 函数..............................................................................................................................46 current() 函数.................................................................................................................46 document() 函数 ............................................................................................................47 element-available() 函数................................................................................................49 format-number() 函数....................................................................................................50 function-available() 函数...............................................................................................52 generate-id() 函数..........................................................................................................53 key() 函数 ......................................................................................................................54 system-property() 函数..................................................................................................55 unparsed-entity-uri() 函数 .............................................................................................56 运算符和特殊字符.................................................................................................................58 附录.........................................................................................................................................58 XSLT 元素 元素 -------------------------------------------------------------------------------- 定义与用法 运用了一个从外部导入的 xsl 作为 Template. 导入的 Template 的样式表比宿主 xsl 的样式表优先级要低. -------------------------------------------------------------------------------- 语法 Attributes None 例子 假设我们有一个样式表叫"standard.xsl",它包含一个为 message elements 定义的 template

宿主样式表要能导入"standard.xsl",并且修改 message elements,像如下这样:
结果会把 message elements 转变成如下这样:

...

用这种方式,可以实现 xsl 的重用。 元素 -------------------------------------------------------------------------------- 定义与用法 元素将模版运用到当前元素或者是当前元素的子节点。 如果我们在元素中增加一个 select 属性,它将只对与属性匹配的子元素 有效。我们可以用 select 属性来指定要处理的子节点。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 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 建立一个可以应用于任何输出元素的属性集: Arial 14px red 元素 定义与用法 元素调用一个命名的 template。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name templatename 必须。 指定被调用的 template 的名字 例子 1 当发现 car 元素时,调用名为"description"的 template 元素 -------------------------------------------------------------------------------- 定义与用法 与结合使用,表示多条件选择。 当不为真时,的内容就被执行。 当都不为真时,什么都不执行。 说明:对于简单的条件选择,用即可。 -------------------------------------------------------------------------------- 语法 属性 无 例子 1 下面的代码展示了如何将价格高于 10 的 CD 的 artist 列背景颜色设为粉红色

My CD Collection

Title Artist
例子 2 声明一个名为"color"的变量。把当前元素 color 属性的值赋给"color"变量。如果当前元素没 有 color 属性,则"color"变量的值将为"green": green 元素 元素 定义和用法 元素被用来在结果树中创建一个注释节点。 -------------------------------------------------------------------------------- 语法 属性 无 例子 1 This is a comment! 元素 -------------------------------------------------------------------------------- 定义与用法 创建当前节点的一份拷贝 说明:当前节点的命称空间被自动拷贝,但是子节点和当前节点的属性不会被自动拷贝! -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 use-attribute-sets name-list 可选。 例子 1 把 message 节点拷贝到输出文档中: 元素 定义与用法 元素创建当前节点的一份拷贝。 注意:命名空间节点,自节点和当前节点的属性都会被自动拷贝。 提示:这个元素能够向输出的不同位置插入多个相同节点的拷贝。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 select expression 需要,用来指定要拷贝的部分 例子 1 Element Description

元素 -------------------------------------------------------------------------------- 定义与用法 元素定义字符和符号使用 format-number()函数来把数字转换为字 符串。 每个国家使用不同的字符分割整数部分,以及整数分组符号。元素让您 可以自己定义它们。 用元素您可以把特殊字符转为其他的符号。 这个元素是个顶级元素。 format-number()函数可以用 name 指定元素。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 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 元素 -------------------------------------------------------------------------------- 定义和用法 元素用来创建一个元素到输出文档。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name name 必须。指定创建的元素的名称(元素名称可以动态赋予,比如 ) namespace URI 可选。指定元素的名称空间(可以动态赋予,比如: ) use-attribute-sets namelist 可选。指定添加的属性列表。 例子 1 创建一个名为“singer”的元素,此元素包含每一个 artist 元素的值。
元素 -------------------------------------------------------------------------------- 定义和用法 The 元素,当 XSL 处理器不能处理某个 XSL 元素时,元素指 定了一个替换代码去执行。 -------------------------------------------------------------------------------- 语法 属性 无 例子 1 这个例子假设处理器对元素不支持,它将会用<:xsl:for-each>元素替代。 元素 -------------------------------------------------------------------------------- 定义与用法 元素在每一个指定的节点集中循环。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 select expression 必须。指定要处理的节点。 例子 1 在每个 cd 节点中循环,使用把每一个 cd 节点中的 title 和 artist 的节点值写到 输出中:

My CD Collection

Title Artist
例子 2 在每个 cd 节点中循环,使用把每一个 cd 节点中的 title 和 artist 的节点值写到 输出中(用 artist 作为排序条件):

My CD Collection

Title Artist
元素 -------------------------------------------------------------------------------- 定义和用法 元素包含一个样规,该样规当指定的条件为真时应用。 提示:可以使用结合,表达多条件控制! -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 test expression 必须。指定要被检查的条件。 例子 1 选择 CD 中 price 的值大于 10 的。

My CD Collection

Title Artist
例子 2 展示每一个 CD 的 title。 1、 在每一个 CD-title 后插入“,”(条件:不是最后一个) 2、 如果是倒数第二个插入“, and” 3、 如果是最后一个插入“!”

My CD Collection

Titles: , and !

元素 -------------------------------------------------------------------------------- 定义和用法 元素是一个高级(原文是 top-level)的元素用来把一个样式表的内容导入到另外 一个。 说明:一个被导入的样式表比导入它的样式表的优先级要低。 说明:这个元素必须在元素中作为第一个子节点出现。 说明:在 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 中,因为它不支持 元素。 元素 -------------------------------------------------------------------------------- 定义和用法 元素是一个高级(原文是 top-level)的元素用来把一个样式表的内容导入到另 外一个。 说明:Included 的样式表与 including 的样式表有相同的优先级。 说明:这个元素必须作为的一个子节点出现。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 href URI 必须。指定 include 的样式表的 URI。 元素 -------------------------------------------------------------------------------- 定义与用法 元素是一个高级(原文是 top-level)的元素,用来声明一个被 key()函数使用的 key 说明:一个 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”。 例子 1 检查 artist 是否是一个空串。如果是,我们结束 XSL 处理并显示一条消息:

Title:
Artist: Error: Artist is an empty string!

元素 -------------------------------------------------------------------------------- 定义与用法 元素用来在输出中用不同的名称空间替代样式表中原来的名称空间。 说明:是一个高级的元素,必须是或者 的子节点。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 stylesheet-prefix prefix #default 必须。指定您想要改变的名称空间。 result-prefix prefix #default 必须. 指定输出想要的名称空间。 例子 1 wxsl 前缀在输出中被转换为 xsl 前缀。 元素 -------------------------------------------------------------------------------- 定义与用法 元素被用来确定当前节点中的整数位置。也被用来格式化一个数字。 -------------------------------------------------------------------------------- 语法 属性 Attribute Value Description count expression 可选. An XPath expression that specifies what nodes are to be counted 一个 XPath 表达式用来指定什么样的节点被计数。 level single multiple any 可选。对数字串产生像目录树一样的分级。 • single (默认) • multiple (多级) • any (Netscape 6 不支持) from expression 可选。用一个 XPath 表达式指定从哪里开始计数。 value expression 可选。由用户指定一个数字来产生数字序列。 format formatstring 可选。 定义了输出的数字的样式。可以是下述之一: • format="1" results in 1 2 3 . . • format="01" results in 01 02 03 (not supported by Netscape 6) • format="a" results in a b c . . (not supported by Netscape 6) • format="A" results in A B C. . (not supported by Netscape 6) • format="i" results in i ii iii iv . . (not supported by Netscape 6) • 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": green 元素 -------------------------------------------------------------------------------- 定义与用法 元素定义了输出文档的格式: 说明:是一个高级的(top level)元素,必须作为 的子节点出现: -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 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)的元素那么参数是全局的,如果在一个样规中声 明那么是局部的。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name name 必须。指定参数的名称。 select expression 可选。指定一个 XPath 表达式作为参数的默认值。 例子 1

Title:

元素 -------------------------------------------------------------------------------- 定义与用法 元素用来定义必须保留空白空间的元素。 元素用来定义必须移除空白空间的元素。 说明:因为保留空白空间是默认设置,所以只有当元素被使用时才有必要使 用元素。 说明:元素和元素是高级(top-level)元素。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 elements list-of-element-names 必须。对列表中的元素加上/除去白色空间。 说明:列表可以包含“*”和“prefix:*”这样所有的元素 或者一个特定的命名空间所有的元素能够加入。 例子 1 下面的这个例子,title 和 artist 元素保留白色空间,country, company, price, 和 year 元素 移除白色空间:






元素 -------------------------------------------------------------------------------- 定义与用法 元素向输出写一条执行指令。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name process-name 必须。指定执行指令的名称。 例子 1 下面的代码: href="style.css" type="text/css" 生成如下的标记: 元素 -------------------------------------------------------------------------------- 定义与用法 元素被用来对输出排序。 说明:通常与 或者 一起使用。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 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 element contains rules to apply when a specified node is matched. 元素包含一些对匹配节点有用的规则。 match 属性用来匹配 XML 节点。也可以匹配全部 XML 文档(比如 match="/") 说明: 是一个高级(top-level)元素。 -------------------------------------------------------------------------------- 语法 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 中不被支持 例子 1 展示每一个 CD 的 title。 1、 在每一个 CD-title 后插入“,”(条件:不是最后一个) 2、 如果是倒数第二个插入“, and” 3、 如果是最后一个插入“!” 显示每一个 CD 的标题。

My CD Collection

Titles: , , and !

元素 -------------------------------------------------------------------------------- 定义与用法 元素取出选择的节点的值。 元素可以被用来取出 XML 元素的值,并输出。 说明: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 中声明时,作 为局部变量。 说明:一旦您设置了一个变量的值,您就不能修改这个值! 提示:您可以通过增加的内容或者用 select 属性来设置变量值! -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name name 必须。指定变量名称 select expression 可选。指定变量的值 例子 1 如果 select 属性被设置了,那么元素就不可以包含任何内容。如果 select 属性 包含字符串,则在设置时必须用引号。 下面的两行示例代码分别给变量"color"赋值为"red"。 例子 2 如果元素仅有 name 属性,元素间没有内容,那么就定义了一个空字符串变量。 例子 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": green 元素 -------------------------------------------------------------------------------- 定义与用法 元素向模板传递的参数的值。 说明:元素的 name 属性的值必须与一个元素的 name 相匹配(否 则元素将被忽略)。 说明:元素在之内使用。 提示:您可以通过两种方式向元素赋值 1、 用 select 属性。 2、 在元素中写。 -------------------------------------------------------------------------------- 语法 属性 属性 值 说明 name name 必须。指定参数的名字 select expression 可选。 An XPath expression that defines the value of the parameter 一个 XPath 表达式定义了参数的值 例子 1

Title:

例子 2 11 33 55 111 + = 这个例子的输出结果为 11 + 33 = 44 55 + 111 = 166 XSLT 函数 current() 函数 -------------------------------------------------------------------------------- 定义与用法 current()函数返回一个仅包含当前节点的节点集。通常当前节点和上下文节点是一样的。 是一样的。 然而,有一点不同。看下面的 XPath 表达式:"catalog/cd"。这个表达式选择作为当 前节点,然后选择的子节点。这意味着在赋值的每一步,"."都有不同的意义。 下面这行代码: 将会处理所有 title 属性的值与当前节点的 ref 属性的值相等的所有 cd 元素。 这与下面有区别 下面这段代码将会处理所有 title 属性的值与 ref 属性的值相等的所有 cd 元素。 -------------------------------------------------------------------------------- 语法 node-set current() 例子 1 Current node:
document() 函数 -------------------------------------------------------------------------------- 定义与用法 document()函数用来访问外部的 XML 文档。外部 XML 文档必须是正确可解析的。 -------------------------------------------------------------------------------- 语法 node-set document(object,node-set?) 参数 参数 说明 object 必须。定义 XML 文档的 URI。 node-set 可选。用来处理相关的 URI。 例子 1 Document.xml hrGroup.xml myGroup.xml document.xsl hrGroup.xml mo bo ko lo myGroup.xml john jane jon jan 例子 2 下面这个例子,显示如何使用两个参数。 第二个参数必须是一个节点集,作为第一个参数的基准 URI,当没有第二个参数时,第一个 参数的基准 URI 就是 XSL 的 URI,如下,把 a.xml 放到 subdir 目录下,而另外两个在../, 如果 document('a.xml', .)的第二个参数不写,将以../作为 a.xml 的目录,就会报错,您可以实 验一下。 document2.xsl One Argument Two Argument Subdir/a.xml I II III b.xml one two three element-available() 函数 -------------------------------------------------------------------------------- 定义与用法 element-available()函数检查 XSLT 处理器是否能处理指定的元素。 这个函数只能用来检查在模板里出现的元素,这些元素是: xsl:apply-imports xsl:apply-templates xsl:attributes xsl:call-template xsl:choose xsl:comment xsl:copy xsl:copy-of xsl:element xsl:fallback xsl:for-each xsl:if xsl:message xsl:number xsl:processing instruction xsl:text xsl:value-of xsl:variable -------------------------------------------------------------------------------- 语法 boolean element-available(string) 参数 参数 说明 string 必须。指定要检查元素。 例子 1

xsl:comment is supported.

xsl:comment is not supported.

xsl:delete is supported.

xsl:delete is not supported.

format-number() 函数 -------------------------------------------------------------------------------- 定义与用法 format-number()函数用来格式化一个数字字符串。 -------------------------------------------------------------------------------- 语法 string format-number(number,format,[decimalformat]) 参数 参数 说明 number Required. Specifies the number to be formatted 必须。指定要格式化的数字 format 必须。指定格式化的模式。 • # (指示一个数字。 比如: ####) • 0 (Denotes leading and following zeros. Example: 0000.00) • . (指定小数点的位置。比如: ###.##) • , (The group separator for thousands. Example: ###,###.##) • % (Displays the number as a percentage. Example: ##%) • ; (Pattern separator. The first pattern will be used for positive numbers and the second for negative numbers) decimalformat 可选。用来指定使用的元素的名称。 例子 1



function-available() 函数 -------------------------------------------------------------------------------- 定义与用法 function-available()函数检查指定的函数在 XSLT 处理器中是否支持。 You may test the XSLT functions and the inherited XPath functions. 您可以检查 XSLT 函数和 XPath 函数。 -------------------------------------------------------------------------------- 语法 boolean function-available(string) 参数 参数 说明 string 必须。指定要检查的函数。 例子 1

sum() is supported.

sum() is not supported.

current() is supported.

current() is not supported.

generate-id() 函数 -------------------------------------------------------------------------------- 定义与用法 generate-id()函数返回一个唯一标示指定节点的字符串。 如果指定的节点集是空的,将返回一个空字符串。如果您忽略了节点集的参数,默认是当前 节点。 -------------------------------------------------------------------------------- 语法 string generate-id(node-set?) 参数 参数 说明 node-set 可选。指定要生成唯一 id 的节点集 例子 1

Artists:


Artist:
Title:
Price:
key() 函数 -------------------------------------------------------------------------------- 定义与用法 key()函数使用元素指定的索引返回文档中的一个节点集。 -------------------------------------------------------------------------------- 语法 node-set key(string, object) 参数 参数 说明 string 必须。指定 xsl:key 元素的名称。 object 必须。要查找的字符串。 例子 1

Title:
Artist:
Price:

system-property() 函数 -------------------------------------------------------------------------------- 定义与用法 The system-property() function returns the value of the system property specified by the name. system-property()函数返回指定名称的系统属性。 System properties in the XSLT namespace: 在 XSLT 名称空间里的系统属性: xsl:version - 指出 XSLT 的版本 xsl:vendor - 指出 XSLT 处理器(比如 James Clark) xsl:vendor-url - 指出处理器的 URL(比如 http://www.jclark.com/) (注:当用 XT 解析时 xsl:vendor 是 James Clark,xsl:vendor-url 是 http://www.jclark.com/,用 IE 就为 Microsoft,http://www.microsoft.com) -------------------------------------------------------------------------------- 语法 object system-property(string) 参数 参数 说明 string 必须。指定返回的系统属性 例子 1

Version:
Vendor:
Vendor URL:

unparsed-entity-uri() 函数 -------------------------------------------------------------------------------- 定义与用法 unparsed-entity-uri()函数返回未解析的实体的 URI。实体名称必须与传递的参数匹配。如果 没有这样的实体,那么返回空串。 如果 DTD 包含下面的声明: 下面的表达式 unparsed-entity-uri('pic') 将会返回"picture.jpg"的 URI。 -------------------------------------------------------------------------------- 语法 string unparsed-entity-uri(string) 参数 参数 说明 string 必须。指定未解析实体 例子 1 XML 文件 ]> XML Developer's Guide Midnight Rain XSL 文件

unparsed-entity-uri()

  • unparsed-entity-uri('pic') =
运算符和特殊字符 != 不等于 "" (literal) 文字 '' (literal) 文字 () (grouping) 分组 * (all nodes) 所有节点 * (multiplication) 通配符 + 加 - 减 - (unary minus) . (self axis short form) 当前元素 .. (parent axis short form) 父元素 / (step separator) 选择子元素 // (descendant-or-self axis short form) 选择子元素,不论多深 :: (axis specifier) (不知道怎么翻译合适,没用过) < 小于 <= 小于等于 = 等于 > 大于 >= 大于等于 @ (attribute axis short form) 选择属性 @* (all attributes) 选择所有属性 [] (predicate) 断言,指定过滤样式 And 与 axis nodetest predicate (step) div The div operator performs floating-point division according to IEEE 754.(原文放上来,不知 道怎么翻译合适,没用过) func() (function call) 调用函数 mod 取余 name (node test) or 或 | (union) 集合 附录 如果没有特殊说明,将使用下面的 XML 文件 Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 Greatest Hits Dolly Parton USA RCA 9.90 1982 Still got the blues Gary Moore UK Virgin records 10.20 1990 Eros Eros Ramazzotti EU BMG 9.90 1997 One night only Bee Gees UK Polydor 10.90 1998 Sylvias Mother Dr.Hook UK CBS 8.10 1973 Maggie May Rod Stewart UK Pickwick 8.50 1990 Romanza Andrea Bocelli EU Polydor 10.80 1996 When a man loves a woman Percy Sledge USA Atlantic 8.70 1987 Black angel Savage Rose EU Mega 10.90 1995 1999 Grammy Nominees Many USA Grammy 10.20 1999 For the good times Kenny Rogers UK Mucik Master 8.70 1995 Big Willie style Will Smith USA Columbia 9.90 1997 Tupelo Honey Van Morrison UK Polydor 8.20 1971 Soulsville Jorn Hoel Norway WEA 7.90 1996 The very best of Cat Stevens UK Island 8.90 1990 Stop Sam Brown UK A and M 8.90 1988 Bridge of Spies T`Pau UK Siren 7.90 1987 Private Dancer Tina Turner UK Capitol 8.90 1983 Midt om natten Kim Larsen EU Medley 7.80 1983 Pavarotti Gala Concert Luciano Pavarotti UK DECCA 9.90 1991 The dock of the bay Otis Redding USA Atlantic 7.90 1987 Picture book Simply Red EU Elektra 7.20 1985 Red The Communards UK London 7.80 1987 Unchain my heart Joe Cocker USA EMI 8.20 1987

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档