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에서 소개된 명령문입니다.