<xsl:number>-Element
Fügt eine formatierte Zahl in die Ergebnisstruktur ein.
<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 } />
Attribute
- level
Dadurch wird angegeben, welche Ebenen der Quellstruktur berücksichtigt werden sollen. Es existieren die Werte"single"
,"multiple"
und"any"
. Der Standardwert ist"single"
.
- count
Ein Muster, das angibt, welche Knoten auf diesen Ebenen gezählt werden sollen. Wenn dascount
-Attribut nicht angegeben ist, wird als Standard das Muster verwendet, das einem beliebigen Knoten mit demselben Knotentyp wie der aktuelle Knoten entspricht. Wenn der aktuelle Knoten über einen erweiterten Namen verfügt, wird das Muster als Standard verwendet, das einem Knoten mit demselben erweiterten Namen wie der aktuelle Knoten entspricht.
- from
Ein Muster, mit dem angegeben wird, wo die Zählung beginnt.
- value
Gibt den Ausdruck an, der in eine Zahl konvertiert werden und an eine Ergebnisstruktur ausgegeben werden soll. Wenn keinvalue
-Attribut angegeben ist, fügt das<xsl:number>
-Element eine auf die Position des aktuellen Knotens in der Quellstruktur basierende Zahl ein.
format
Eine Folge von Token, die das für jede Zahl in der Liste zu verwendende Format angeben. Wenn keine Formattoken vorhanden sind, wird der Standardwert 1 verwendet. Er generiert die Folge 1 2 ... 10 11 12.... Jede auf die erste Zahl folgende Zahl wird von der vorherigen Zahl getrennt. Dies geschieht mithilfe des Trennzeichentokens, das dem zum Formatieren der Zahl verwendeten Formattoken vorausgeht. Wenn keine Trennzeichentoken vorhanden sind, wird ein Punkt (".") verwendet.Formattoken Generierte Sequenz 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
Gibt an, welches Alphabet (d. h. welche Sprache) verwendet wird. Wenn kein lang-Wert angegeben ist, wird die Sprache der Systemumgebung verwendet.
- letter-value
Unterscheidet zwischen Nummerierungsfolgen, in denen Buchstaben verwendet werden. Eine Nummerierungsfolge weist Buchstaben in alphabetischer Reihenfolge numerische Werte zu, die andere weist jedem Buchstaben auf eine für die Sprache übliche Weise numerische Werte zu. Im Englischen entspricht dies den von den Formattoken "a" und "i" angegebenen Nummerierungsfolgen. In einigen Sprachen ist der erste Member jeder Folge derselbe. Daher wäre das Formattoken allein mehrdeutig. Ein Wert"alphabetic"
gibt die alphabetische Folge an, und ein Wert"traditional"
gibt die andere Folge an. Der Standardwert ist"alphabetic"
.
- grouping-separator
Gibt das als Gruppierungstrennzeichen (z. B. Tausender) verwendete Trennzeichen in dezimalen Nummerierungsfolgen an. Beispielsweise erzeugengrouping-separator=","
undgrouping-size="3"
Zahlen der Form 1,000,000. Wenn nur dasgrouping-separator
-Attribut oder dasgrouping-size
-Attribut angegeben ist, wird es ignoriert.
- grouping-size
Gibt die Größe (i. d. R. 3) der Gruppierung an. Beispielsweise erzeugengrouping-separator=","
undgrouping-size="3"
Zahlen der Form 1,000,000. Wenn nur dasgrouping-separator
-Attribut oder dasgrouping-size
-Attribut angegeben ist, wird es ignoriert.
Elementinformationen
Anzahl der Vorkommen |
Unbegrenzt |
Übergeordnete Elemente |
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, Ausgabeelemente |
Untergeordnete Elemente |
(Keine untergeordneten Elemente) |
Hinweise
Die einzufügende Zahl wird durch einen im value
-Attribut enthaltenen Ausdruck angegeben. Der Ausdruck wird ausgewertet, und das resultierende Objekt wird in eine Zahl konvertiert. Die Zahl wird auf eine ganze Zahl aufgerundet, anschließend in eine Zeichenfolge konvertiert und in die Ergebnisstruktur eingefügt.
Das <xsl:number>
-Element erstellt zunächst mithilfe der Attribute level, count und from eine Liste der positiven ganzen Zahlen.
Beim Wert
level="single"
sucht das Element den ersten Knoten in der ancestor-or-self-Achse, der dem Zählmuster entspricht. Dann wird eine Liste der Länge 1 erstellt. Darin sind ein Knoten plus die Anzahl von vorhergehenden nebengeordneten Knoten dieses übergeordneten Knotens enthalten, die dem Zählmuster entsprechen. Wenn ein solcher übergeordneter Knoten nicht vorhanden ist, wird eine leere Liste erstellt. Wenn dasfrom
-Attribut angegeben ist, wird nur nach den übergeordneten Knoten gesucht, die wiederum untergeordnete Knoten des nächsten übergeordneten Knotens darstellen, der demfrom
-Muster entspricht. Vorhergehende nebengeordnete Elemente haben dieselbe Bedeutung wie bei der preceding-sibling-Achse.Beim Wert
level="multiple"
erstellt das Element eine Liste mit allen in der Dokumentreihenfolge übergeordneten Knoten des aktuellen Knotens, die vom Element selbst gefolgt werden. Es wählt aus der Liste dann die Knoten aus, die dem Zählmuster entsprechen und ordnet dann jeden Knoten einem Knoten plus der Anzahl von vorhergehend nebengeordneten Knoten dieses Knotens zu, die dem Zählmuster entsprechen. Wenn dasfrom
-Attribut angegeben ist, wird nur nach den übergeordneten Knoten gesucht, die wiederum untergeordnete Knoten des nächsten übergeordneten Knotens darstellen, der demfrom
-Muster entspricht. Vorhergehende nebengeordnete Elemente haben dieselbe Bedeutung wie bei der preceding-sibling-Achse.Beim Wert
level="any"
erstellt das Element eine Liste der Länge 1, die die Anzahl der Knoten enthält, die dem Zählmuster entsprechen und zu der Gruppe gehören, die den aktuellen Knoten und alle Knoten auf beliebigen Dokumentebenen über dem aktuellen Knoten in der Dokumentstruktur enthält. Namspace- und Attributknoten sind davon ausgeschlossen (d. h., die Union der Member der preceding-Achse und der ancestor-or-self -Achse). Wenn dasfrom
-Attribut angegeben ist, werden nur Knoten berücksichtigt, die sich nach dem ersten Knoten vor dem aktuellen Knoten befinden, der demfrom
-Muster entspricht.
Die folgenden Sprachen-/Nummerierungsschemata werden unterstützt. " Formattoken" entspricht dem format
-Attribut, "Sprache" entspricht dem lang
-Attribut und "Buchstabenwert" entspricht dem letter-value
-Attribut.
Beschreibung | Formattoken | Sprache | Buchstabenwert |
---|---|---|---|
Westlich |
0x0031 (1) |
nicht verfügbar |
nicht verfügbar |
Großbuchstabe |
0x0041 (A) |
nicht verfügbar |
nicht verfügbar |
Kleinbuchstabe |
0x0061 (a) |
nicht verfügbar |
nicht verfügbar |
Großbuchstabe (lateinisch) |
0x0049 (I) |
nicht verfügbar |
nicht verfügbar |
Kleinbuchstabe (lateinisch) |
0x0069 (i) |
nicht verfügbar |
nicht verfügbar |
Russischer Großbuchstabe (kyrillisch) |
0x0410 |
nicht verfügbar |
nicht verfügbar |
Russischer Kleinbuchstabe (kyrillisch) |
0x0430 |
nicht verfügbar |
nicht verfügbar |
Hebräisch (Ivrith, alphabetisch) |
0x05d0 |
nicht verfügbar |
Alphabetisch |
Hebräisch (traditionell) |
0x05d0 |
nicht verfügbar |
Traditionell |
Arabisch |
0x0623 |
nicht verfügbar |
nicht verfügbar |
Hindi-Konsonanten |
0x0905 |
nicht verfügbar |
nicht verfügbar |
Hindi-Vokale |
0x0915 |
nicht verfügbar |
nicht verfügbar |
Hindi-Ziffern |
0x0967 |
nicht verfügbar |
nicht verfügbar |
Thai-Buchstaben |
0x0e01 |
nicht verfügbar |
nicht verfügbar |
Thai-Ziffern |
0x0e51 |
nicht verfügbar |
nicht verfügbar |
Japanisch (Aiueo, Doppelbyte) |
0x30a2 |
nicht verfügbar |
nicht verfügbar |
Japanisch (Iroha, Doppelbyte) |
0x30a4 |
nicht verfügbar |
nicht verfügbar |
Koreanisch (Chosung) |
0x3131 |
nicht verfügbar |
nicht verfügbar |
Taiwanesisch (dezimal) |
0x4e01 |
"zh-tw" |
nicht verfügbar |
Koreanisch (dezimal) |
0x4e01 |
"ko" |
nicht verfügbar |
Asiatisch (dezimal) |
0x4e01 |
alle anderen Sprachen |
nicht verfügbar |
Asiatisch (Kanji) |
0x58f1 |
nicht verfügbar |
nicht verfügbar |
Taiwanesisch (traditionell) |
0x58f9 |
"zh-tw" |
nicht verfügbar |
Chinesisch (traditionell) |
0x58f9 |
alle anderen Sprachen |
nicht verfügbar |
12 chinesische Tierkreiszeichen |
0x5b50 |
nicht verfügbar |
nicht verfügbar |
10 chinesische Tierkreiszeichen |
0x7532 |
nicht verfügbar |
nicht verfügbar |
60 chinesische Tierkreiszeichen |
0x7532, 0x5b50 |
nicht verfügbar |
nicht verfügbar |
Koreanisch (Ganada) |
0xac00 |
nicht verfügbar |
nicht verfügbar |
Koreanisch (dezimal) |
0xc77c |
nicht verfügbar |
nicht verfügbar |
Koreanisch (99) |
0xd558 |
nicht verfügbar |
nicht verfügbar |
Westlich (Doppelbyte) |
0xff11 |
nicht verfügbar |
nicht verfügbar |
Japanisch (Aiueo, Einzelbyte) |
0xff71 |
nicht verfügbar |
nicht verfügbar |
Japanisch (Iroha, Einzelbyte) |
0xff72 |
nicht verfügbar |
nicht verfügbar |
Wenn das Formattoken bereits genügt, um ein bestimmtes Nummerierungsschema eindeutig zu bestimmen, muss keine Sprache und kein Buchstabenwert angegeben werden.
Es folgen einige Beispiele zu Konvertierungsangaben
format="ア"
gibt die Katakana-Nummerierung an.
format="イ"
gibt die Katakana-Nummerierung in der Reihenfolge "Iroha" an.
format="๑"
gibt die Nummerierung mit Thai-Ziffern an.
format="א" letter-value="traditional"
gibt die Nummerierung in traditionellem Hebräisch an.
format="ა" letter-value="traditional"
gibt die Nummerierung in Georgisch an.
format="α" letter-value="traditional"
gibt die Nummerierung in klassischem Griechisch an.
format="а" letter-value="traditional"
gibt die Nummerierung in Altslawisch an.
Beispiel
In diesem Beispiel wird die Verwendung des <xsl:number>
-Elements durch Nummerieren von Einträgen in einer sortierten Liste mit der Nummerierung Westlich und Kleinbuchstaben (lateinisch) veranschaulicht.
XML-Datei (items.xml)
XSLT-Datei (numelem.xsl)
Ausgabe
Dies ist die formatierte Ausgabe:
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
Dies ist die Prozessorausgabe:
<?xml version="1.0" encoding="UTF-16"?>1. Canopy,
i) Canopy<br />2. Car,
ii) Car<br />3. Cell phone,
...
xi) Wisdom<br />