AUF DIESER SEITE
number
Syntax
number expression {
format numbering-style;
grouping-separator character;
grouping-size number;
}
number {
count nodes;
format numbering-style;
from nodes;
grouping-separator character;
grouping-size number;
level "single" | "multiple" | "any";
}
Beschreibung
Erzeugen Sie eine formatierte Zahlenfolge, die in den Ergebnisbaum ausgegeben wird. Wenn die Anweisung zusammen mit einem Argument verwendet wird, formatiert sie die Zahl, die von diesem XPath-Ausdruck angegeben wird. Wenn die Anweisung ohne Argument verwendet wird, verwendet sie die countOptionen , fromund , um level die Zahl basierend auf der Position eines oder mehrerer Knoten im aktuellen XML-Dokument zu generieren. In beiden Fällen geben optionale Anweisungen die Formatierung für diese Zahl an. Bei Bedarf können Sie die formatierte Zahlenzeichenfolge auch an eine Variable oder Ausgabemethode anstelle der Ergebnisstruktur umleiten.
Attribute
number expression |
XPath-Ausdruck, der die zu formatierende Zahl angibt. |
||||||||||||||||||||||||
count nodes |
XPath-Ausdruck, der angibt, welche Nodes gezählt werden sollen. Wenn |
||||||||||||||||||||||||
format numbering-style |
Eine Zeichenfolge, eine Variable oder ein XPath-Ausdruck, der die Zahlenformatierung definiert. Die
|
||||||||||||||||||||||||
from nodes |
XPath-Ausdruck, der angibt, von welchem Element aus die Zählung gestartet werden soll. Wenn |
||||||||||||||||||||||||
grouping-separator character |
Zeichen, das zum Trennen von Zifferngruppen für Zahlen im Dezimalformat verwendet wird. Bei der Dezimalschreibweise wird z. B. ein Komma als Trennzeichen zwischen Zifferngruppierungen verwendet. |
||||||||||||||||||||||||
grouping-size number |
Definiert die Anzahl der Ziffern in einer Gruppe für Zahlen, die im Dezimalformat ausgedrückt werden. Wenn Sie diese Option festlegen, wird die formatierte Zahl entsprechend der Gruppierungsgröße in mehrere Gruppen aufgeteilt, wobei das Gruppierungstrennzeichen die Gruppen trennt. Bei der Dezimalschreibweise wird z. B. häufig eine Gruppierungsgröße von 3 verwendet. |
||||||||||||||||||||||||
level |
Gibt an, welche Art von Zählung ausgeführt werden soll. Akzeptierte Werte sind
|
Derzeit unterstützt libxslt (1.1.26) die Optionen »language« und »letter-value« für das <xsl:number> Element nicht. SLAX bietet zwar eine Möglichkeit, diese XSLT-Konstrukte zu codieren, sie können jedoch nicht in Junos OS verwendet werden.
SLAX-Beispiel
Der folgende Beispielcode durchläuft von 1 bis 5. Für jede ganze Zahl gibt die number Anweisung den entsprechenden römischen Ziffernwert in Großbuchstaben aus.
for $i (1 ... 5) {
number $i {
format "I ";
}
}
I II III IV V
Der folgende Beispielcode stellt die Zeichenfolge "1234567890" für die number Anweisung bereit, die die Ausgabe im Dezimalformat mit einer Gruppengröße von 3 und einem Komma als Gruppentrennzeichen formatiert.
number "1234567890" {
grouping-size 3;
grouping-separator ",";
format "1";
}
1,234,567,890
Der folgende Beispielcode zählt alle Elemente in der Konfigurationshierarchie, die name in der Variablen $datagespeichert sind. Die count Option in Kombination mit der level "multiple" Option verfolgt die Anzahl für alle name Elemente unter den interfaceElementen , unitund address .
Die format Option (1.A.a) enthält eine Startzeichenfolge, die eine offene Klammer ist, und eine Endzeichenfolge, die eine schließende Klammer und ein Leerzeichen ist. Die Zahlentoken sind "1", "A" und "a", die die Formatierung der Zahlen als Dezimalformat, alphabetische Nummerierung in Großbuchstaben bzw. alphabetische Nummerierung in Kleinbuchstaben definieren. Das Tokentrennzeichen ist ein Punkt, der auch in der Ausgabe enthalten ist.
var $data := {
<interfaces> {
<interface> {
<name> "ge-0/0/0";
<unit> {
<name> "0";
}
<unit> {
<name> "1";
}
}
<interface> {
<name> "ge-0/1/0";
<unit> {
<name> "10";
<family> {
<inet>;
}
}
}
<interface> {
<name> "ge-2/0/2";
<unit> {
<name> "0";
<family> {
<inet> {
<address> {
<name> "10.1.1.1/24";
}
}
}
}
}
}
}
for-each ($data//name) {
number {
level "multiple";
count interface|unit|address;
format "(1.A.a) ";
}
expr . _ "\n";
}
Für die generierten Zahlen, die im Ergebnisbaum angezeigt werden, ist die Dezimalzahl in Klammern einer bestimmten Schnittstelle zugeordnet. Für jede Schnittstelle wird der Großbuchstabe jedem Namen der logischen Einheit zugeordnet, und jeder Kleinbuchstabe wird dem Adresselement name für diese logische Einheit zugeordnet, bei dem es sich um die IP-Adresse handelt.
(1) ge-0/0/0 (1.A) 0 (1.B) 1 (2) ge-0/1/0 (2.A) 10 (3) ge-2/0/2 (3.A) 0 (3.A.a) 10.1.1.1/24
Informationen zur Veröffentlichung
Anweisung eingeführt in Version 1.1 der SLAX-Sprache, die in Junos OS Version 12.2 und höheren Versionen unterstützt wird.