Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

key

구문

설명

XPath 기능에 사용할 key() 키를 정의합니다. 키는 ID의 대안이며 XML 문서 내에서 노드를 인덱싱하는 데 사용됩니다. 키는 스크립트에서 최상위 문으로 정의되어야 합니다. 정의는 key 키 식별자, 인덱스를 위한 노드 및 일치하는 노드를 참조하기 위해 키 이름과 쌍으로 구성된 값으로 구성됩니다. 그런 다음 이 key() 함수는 적절한 노드를 찾는 데 사용됩니다.

key() 기능은 현재 노드의 XML 문서와 함께 작동하고 지정된 key 정의를 사용하여 특정 이름과 값으로 참조되는 노드를 검색합니다. 기능 인수는 키 이름과 원하는 키의 값입니다. 반환 값은 키 이름과 값으로 참조되는 모든 노드를 포함하는 노드 세트입니다. 원하는 키 값이 문자열이 아닌 노드 세트로 제공되는 경우, 반환된 노드 집합은 노드 세트 내의 노드에 의해 표현되는 키 값에 대해 참조된 모든 노드의 연합입니다.

예를 들어, 키를 정의하는 경우:

다음 코드는 "trace"의 값이 있는 name 속성을 가진 요소를 선택한 <prototype> 다음 하위 요소<return-type>의 값을 출력합니다.

특성

key name

스크립트 내에서 키를 고유하게 식별하고 기능에 대한 첫 번째 인수 key() 로 전달되는 키 식별자.

match pattern

인덱스에 대한 노드 집합을 선택하는 XPath 표현식.

value expression

키의 값을 정의하는 XPath 표현식.

SLAX 예

다음 op 스크립트는 디바이스에서 ge-0/0/0.0의 다음 홉으로 모든 정적 경로와 모든 경로를 검색하고 표시하는 데 사용되는 두 개의 key 정의를 protocol next-hop생성합니다. 스크립트는 Junos XML API get-route-information 명령을 호출하여 디바이스의 경로 정보를 획득합니다. 명령문은 for-each( $results ) 현재 노드를 XML 문서로 $results 변경합니다. 후속 for-each 루프는 키를 사용하여 키 이름과 값에 따라 인덱싱되는 모든 노드를 검색합니다.

문은 for-each( key( "protocol", "Static" ) 요소와 protocol route-table/rt 일치하는 키 정의를 사용하여 원하는 노드를 검색합니다. 키 값은 rt-entry/protocol-name "Static"이라는 값을 가지는 하위 요소와 일치 <protocol-name> 합니다. 코드 블록은 컨텍스트 노드로 사용하여 <rt> 실행됩니다. 각 일치에 대해 스크립트는 요소의 <rt-destination> 값을 출력합니다.

문은 for-each( key( "next-hop", "ge-0/0/0.0" ) 요소에서 route-table/rt 일치하는 "다음 홉" 키 정의를 사용하여 원하는 노드를 검색합니다. 키 값은 rt-entry/nh/via "ge-0/0/0.0"이라는 값을 가지는 하위 요소와 일치 <via> 합니다. 코드 블록은 컨텍스트 노드로 사용하여 <rt> 실행됩니다. 각 일치에 대해 스크립트는 요소의 <rt-destination> 값을 출력합니다.

릴리스 정보

SLAX 언어의 버전 1.1에서 소개된 명령문은 Junos OS 릴리스 12.2 이상에서 지원됩니다.