number
구문
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";
}
설명
결과 트리에 출력되는 형식화된 숫자 문자열을 생성합니다. 인수와 함께 사용할 경우 문은 해당 XPath 식에 지정된 숫자의 형식을 지정합니다. 인수 없이 사용할 경우 문은 , from및 level 옵션을 사용하여 count현재 XML 문서 내에서 하나 이상의 노드 위치에 따라 번호를 생성합니다. 두 경우 모두 선택적 문은 해당 번호의 형식을 지정합니다. 필요한 경우 서식이 지정된 숫자 문자열을 결과 트리 대신 변수 또는 출력 메서드로 리디렉션할 수도 있습니다.
특성
number expression |
형식을 지정할 숫자를 제공하는 XPath 식입니다. |
||||||||||||||||||||||||
count nodes |
계산해야 하는 노드를 지정하는 XPath 식입니다. 을 생략하면 |
||||||||||||||||||||||||
format numbering-style |
숫자 서식을 정의하는 문자열, 변수 또는 XPath 식입니다. 옵션에는
|
||||||||||||||||||||||||
from nodes |
카운트를 시작할 요소를 지정하는 XPath 식입니다. 이 또는 |
||||||||||||||||||||||||
grouping-separator character |
10진수 형식으로 표현된 숫자에 대해 자릿수 그룹을 구분하는 데 사용되는 문자입니다. 예를 들어, 10진수 표기법은 자릿수 그룹 사이의 구분 기호로 쉼표를 사용합니다. |
||||||||||||||||||||||||
grouping-size number |
10진수 형식으로 표현된 숫자에 대한 그룹의 자릿수를 정의합니다. 이 옵션을 설정하면 그룹화 크기에 따라 서식이 지정된 번호가 여러 그룹으로 분할되고 그룹화 구분 기호가 그룹을 구분합니다. 예를 들어, 10진수 표기법은 종종 3의 그룹화 크기를 사용합니다. |
||||||||||||||||||||||||
level |
수행할 계산 유형을 지정합니다. 허용되는 값은
|
현재 libxslt (1.1.26)는 요소에 대한 <xsl:number> "언어"및 "문자 값"옵션을 지원하지 않습니다. SLAX는 이러한 XSLT 구문을 인코딩하는 수단을 제공하지만 Junos OS에서는 사용할 수 없습니다.
SLAX 예제
다음 샘플 코드에서는 1부터 5까지 반복합니다. 각 정수에 대해 문은 number 동일한 대문자 로마 숫자 값을 출력합니다.
for $i (1 ... 5) {
number $i {
format "I ";
}
}
I II III IV V
다음 샘플 코드에서는 문에 number 문자열 "1234567890"를 제공하여 그룹 크기가 3이고 쉼표를 그룹 구분 기호로 사용하여 10진수 형식으로 출력 형식을 지정합니다.
number "1234567890" {
grouping-size 3;
grouping-separator ",";
format "1";
}
1,234,567,890
다음 샘플 코드는 변수에 $data저장된 구성 계층의 모든 name 요소를 계산합니다. 옵션과 count 결합된 옵션은 , unit및 요소 아래에 있는 모든 name 요소의 개수를 interface추적합니다 address level "multiple".
옵션(1.A.a)에는 format 열린 괄호인 시작 문자열과 닫는 괄호 및 공백 문자인 끝 문자열이 포함됩니다. 숫자 토큰은 "1", "A" 및 "a"이며, 숫자의 형식을 각각 10진수 형식, 알파벳 대문자 번호 매기기 및 소문자 알파벳 번호 매기기로 정의합니다. 토큰 구분 기호는 마침표이며 출력에도 포함됩니다.
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";
}
결과 트리에 표시되는 생성된 숫자의 경우, 괄호 안의 10진수는 특정 인터페이스와 연관됩니다. 각 인터페이스의 경우, 대문자는 각 논리 장치 이름과 연결되며, 모든 소문자는 해당 논리 단위의 주소 name 요소인 IP 주소와 연결됩니다.
(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
릴리스 정보
Junos OS 릴리스 12.2 이상에서 지원되는 SLAX 언어 버전 1.1에서 소개된 명령문입니다.