<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-separator
和grouping-size
特性中的一个,将忽略另一个特性。
- grouping-size
指定分组的大小(通常为 3)。 例如,grouping-separator=","
和grouping-size="3"
生成的数字格式将为 1,000,000。 如果只指定了grouping-separator
和grouping-size
特性中的一个,将忽略另一个特性。
元素信息
出现次数 |
无限制 |
父元素 |
xsl:copy、xsl:element、xsl:fallback、xsl:for-each、xsl:if、xsl:message、xsl:otherwise、xsl:param、xsl:template、xsl:variable、xsl:when、xsl: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="ア"
指定 Katakana 编号。
format="イ"
指定按“iroha”顺序的 Katakana 编号。
format="๑"
指定使用泰语数字编号。
format="א" letter-value="traditional"
指定传统希伯来语编号。
format="ა" letter-value="traditional"
指定格鲁吉亚语编号。
format="α" letter-value="traditional"
指定经典希腊语编号。
format="а" 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 />