for-each
구문
for-each (expression) { /* code */ }
/* Syntax added in version 1.1 of the SLAX language.*/ for-each (min ... max) { /* code */ }
설명
지정된 노드 집합의 각 XML 요소 또는 정수 집합의 각 값에 대해 스크립트 처리를 반복하는 루핑 메커니즘을 포함합니다.
인수가 XPath 표현식인 경우, 요소 노드는 XPath 표현식의 값에 의해 선택됩니다. 인수가 정수 집합인 경우 반복 연산자(...)는 왼쪽 피연산자와 오른쪽 피연산자 사이의 각 정수 값을 사용하여 노드 시퀀스를 생성합니다. 왼쪽 피연산자가 오른쪽 피연산자보다 크면 숫자가 내림차순으로 생성됩니다. 그런 다음 각 반복에 대해 내용이 평가되고 코드 블록에 for-each
포함된 지침에 따라 처리됩니다.
특성
for-each expression |
처리할 노드를 선택하는 XPath 식입니다. |
max |
정수 시퀀스의 끝 값을 정의하는 정수 또는 변수입니다. 끝 값이 시작 값보다 작으면 숫자가 내림차순으로 생성됩니다. |
min |
정수 시퀀스의 시작 값을 정의하는 정수 또는 변수입니다. 시작 값이 끝 값보다 크면 숫자가 내림차순으로 생성됩니다. |
SLAX 예제
다음 코드는 750-000610과 같은 부분 번호 자식 요소가 있는 각 chassis-sub-module
요소를 반복합니다. 각 일치 항목에 대해 스크립트는 모듈 이름과 하위 모듈의 이름 및 설명이 포함된 요소를 출력 <message>
합니다.
for-each ($inventory/chassis/chassis-module/ chassis-sub-module[part-number == '750-000610']) { <message> "Down rev PIC in " _ ../name _ ", " _ name _ ": " _ description; }
다음 코드는 1부터 3까지의 정수를 반복합니다. 각 반복에 대해 코드 블록은 집합의 현재 정수 값과 같은 값을 가진 특성을 item-number
포함하는 요소를 생성합니다<item>
.
for-each (1 ... 3) { <item> { attribute "item-number" { expr .; } } } /* Output: <item item-number="1"/><item item-number="2"/><item item-number="3"/> */
사용 예
릴리스 정보
SLAX 언어 버전 1.0에 도입된 명령문입니다.
Junos OS 릴리스 12.2 이상에서 지원되는 SLAX 언어 버전 1.1에 반복 연산자 (...)에 대한 지원이 추가되었습니다.