<xsl:number> 元素

将格式化的数字插入结果树。

<xsl:number
  level = "single" | "multiple" | "any"
  count = Pattern
  from = Pattern
  value = number-expression
  format = { string }
  lang = { nmtoken }
  letter-value = { "alphabetic" | "traditional" }
  grouping-separator = { char }
  grouping-size = { number } />

特性

  • level
    指定应考虑的源树级别;值为 "single""multiple""any"。 默认值为 "single"
  • count
    指定所选级别上应计算的节点的模式。 如果未指定 count 属性,默认情况下将采用与当前节点的类型相同的任何节点匹配的模式,如果当前节点具有扩展名称,则为与当前节点的扩展名称相同的任何节点匹配的模式。
  • from
    指定计数起始位置的模式
  • value
    指定要转换为数字并输出到结果树的表达式。 如果未指定 value 属性,<xsl:number> 元素将根据当前节点在源树中的位置插入一个数字。
  • format
    指定列表中的每个数字要使用的格式的标记序列。 如果没有格式标记,则使用默认值 1,它生成的序列是 1 2 ... 10 11 12.... 第一个数字之后的每个数字通过分隔符标记与前一个数字分隔,分隔符标记位于用于格式化该数字的格式标记的前面。 如果没有分隔符标记,将使用句点字符(“.”)。

    格式标记 生成的序列

    1

    1 2 3 4 5 ... 10 11 12 ...

    01

    01 02 03 ... 19 10 11 ... 99 100 101...

    A

    A B C ... Z AA AB AC...

    i

    i ii iii iv v vi vii viii ix x...

    I

    I II III IV V VI VII VIII IX X...

  • lang
    指定所使用的语言的字母表。 如果未指定 lang 值,将根据系统环境确定语言。
  • letter-value
    消除使用字母的编号序列之间的歧义。 一个编号序列为字母序列中的字母分配数值,另一个编号序列为以该语言的某种其他传统方式为每个字母分配数值。 在英语中,对应于格式标记“a”和“i”所指定的编号序列。 在某些语言中,每个序列的第一个成员均相同,所以,单独使用格式标记不明确。 值 "alphabetic" 指定字母序列;值 "traditional" 指定其他序列。 默认值为 "alphabetic"
  • grouping-separator
    给出在十进制编号序列中用作分组(例如, 千分位)分隔符的分隔符。 例如,grouping-separator="," grouping-size="3" 生成的数字格式将为 1,000,000。 如果只指定了 grouping-separatorgrouping-size 特性中的一个,将忽略另一个特性。
  • grouping-size
    指定分组的大小(通常为 3)。 例如,grouping-separator=","grouping-size="3" 生成的数字格式将为 1,000,000。 如果只指定了 grouping-separatorgrouping-size 特性中的一个,将忽略另一个特性。

元素信息

出现次数

无限制

父元素

xsl:copyxsl:elementxsl:fallbackxsl:for-eachxsl:ifxsl:messagexsl:otherwisexsl:paramxsl:templatexsl:variablexsl:whenxsl:with-param、输出元素

子元素

(无子元素)

备注

要插入的数字由 value 属性中包含的表达式指定。 将计算该表达式,并将生成的对象转换为数字。 数字舍入到整数,然后转换为字符串并插入结果树。

<xsl:number> 元素先使用 level、count 和 from 属性构造一个正整数列表:

  • 如果 level="single",将向上转到与计数模式匹配的上级或自身轴中的第一个节点,然后构造一个长度列表,包含 1 加上该上级中与计数模式匹配的前同辈数。 如果没有这样的上级,则构造空列表。 如果指定了 from 属性,搜索的上级必须是与 from 模式匹配的最近的上级的后代。 在这里,前同辈在含义上与前同辈轴相同。

  • 如果 level="multiple",将构造当前节点的所有上级按文档顺序排序的列表,后接元素本身;然后从列表中选择与计数模式匹配的节点;再将列表中的每个节点映射到 1 加上该节点中与计数模式匹配的前同辈数。 如果指定了 from 属性,搜索的上级必须是与 from 模式匹配的最近的上级的后代。 在这里,前同辈在含义上与前同辈轴相同。

  • 如果 level="any",将构造一个长度列表,包含与计数模式匹配的节点数,并且这些节点所属的节点集应包含当前节点以及按文档顺序在当前节点之前的任何文档级别的所有节点,任何命名空间和属性节点除外(即前轴和上级或自身轴的成员的联合)。 如果指定了 from 属性,则只考虑第一个节点之后、当前节点之前的与 from 模式匹配的节点。

支持以下语言/编号架构。 “格式标记”对应于 format 特性,“语言”对应于 lang 特性,“字母值”对应于 letter-value 特性。

说明 格式标记 语言 字母值

西方语言

0x0031 (1)

不可用

不可用

大写字母

0x0041 (A)

不可用

不可用

小写字母

0x0061 (a)

不可用

不可用

大写罗马字母

0x0049 (I)

不可用

不可用

小写罗马字母

0x0069 (i)

不可用

不可用

大写俄语(西里尔语)

0x0410

不可用

不可用

小写俄语(西里尔语)

0x0430

不可用

不可用

希伯来语字母

0x05d0

不可用

Alphabetic

传统希伯来语

0x05d0

不可用

Traditional

阿拉伯语

0x0623

不可用

不可用

印地语辅音字母

0x0905

不可用

不可用

印地语元音字母

0x0915

不可用

不可用

印地语数字

0x0967

不可用

不可用

泰语字母

0x0e01

不可用

不可用

泰语数字

0x0e51

不可用

不可用

日语 Aiueo(双字节)

0x30a2

不可用

不可用

日语 Iroha(双字节)

0x30a4

不可用

不可用

朝鲜语 Chosung

0x3131

不可用

不可用

台湾方言小数

0x4e01

“zh-tw”

不可用

朝鲜语小数

0x4e01

“ko”

不可用

亚洲小数

0x4e01

任何其他语言

不可用

亚洲日本文字

0x58f1

不可用

不可用

繁体台湾方言

0x58f9

“zh-tw”

不可用

繁体中文

0x58f9

任何其他语言

不可用

中文“Zodiac”12

0x5b50

不可用

不可用

中文“Zodiac”10

0x7532

不可用

不可用

中文“Zodiac”60

0x7532、0x5b50

不可用

不可用

朝鲜语 Ganada

0xac00

不可用

不可用

朝鲜语小数

0xc77c

不可用

不可用

朝鲜语 99

0xd558

不可用

不可用

西方语言(双字节)

0xff11

不可用

不可用

日语 Aiueo(单字节)

0xff71

不可用

不可用

日语 Iroha(单字节)

0xff72

不可用

不可用

如果单独使用格式标记不足以消除特定编号架构的歧义,不需要指定语言或字母值。

下面是转换规范的一些示例。

format="&#x30A2;" 指定 Katakana 编号。

format="&#x30A4;" 指定按“iroha”顺序的 Katakana 编号。

format="&#x0E51;" 指定使用泰语数字编号。

format="&#x05D0;" letter-value="traditional" 指定传统希伯来语编号。

format="&#x10D0;" letter-value="traditional" 指定格鲁吉亚语编号。

format="&#x03B1;" letter-value="traditional" 指定经典希腊语编号。

format="&#x0430;" letter-value="traditional" 指定旧斯拉夫语编号。

示例

该示例通过在排序列表中使用西方语言编号,然后使用小写罗马编号对项进行编号,演示 <xsl:number> 元素的使用方法。

XML 文件 (items.xml)

XSLT 文件 (numelem.xsl)

输出

以下是格式化输出:

1. Canopy, i) Canopy 2. Car, ii) Car 3. Cell phone, iii) Cell phone 4. Concept, iv) Concept 5. Film projector, v) Film projector 6. Hole, vi) Hole 7. LP Record, vii) LP Record 8. Null character, viii) Null character 9. Pen, ix) Pen 10. Widget, x) Widget 11. Wisdom, xi) Wisdom

以下是处理器输出:

<?xml version="1.0" encoding="UTF-16"?>1. Canopy,

i) Canopy<br />2. Car,

ii) Car<br />3. Cell phone,

...

xi) Wisdom<br />