Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

XPath 개요

XSLTXPath(XML Path Language ) 표준을 사용하여 입력 문서의 XML 계층에서 요소를 지정하고 찾습니다. XPath의 강력한 표현식 구문을 사용하면 XML 입력 문서의 일부를 선택하는 데 복잡한 기준을 정의할 수 있습니다.

노드 및 축

XPath는 문서 계층의 모든 부분을 노드로 간주합니다. 커밋 스크립트, op 스크립트, 이벤트 스크립트 및 SNMP 스크립트의 경우 중요한 노드 유형은 요소 노드, 텍스트 노드속성 노드입니다. 다음 XML 태그를 고려하십시오.

이러한 XML 태그 요소는 다음 유형의 XPath 노드 예시를 보여줍니다.

  • <host-name>my-router</host-name>—요소 노드

  • my-router—텍스트 노드

  • inactive="inactive"—속성 노드

노드는 특정 으로 배열되는 것으로 간주됩니다. 상위 축 은 일련의 상위 노드를 통해 노드에서 을(를) 가리킵니다. 하위 축 은 요소 노드의 직접 하위 노드 목록을 가리킵니다. 속성 축 은 요소 노드의 속성 집합 목록을 가리킵니다. 다음 형제 축 은 노드를 따르지만 동일한 상위 아래에 있는 노드를 가리킵니다. 하위 축 에는 노드의 모든 하위 축이 포함됩니다. 여기에 나열되지 않은 다른 축이 많이 있습니다.

각 XPath 표현식은 컨텍스트 노드 (또는 단순히 컨텍스트)라고 하는 특정 노드에서 평가됩니다. 컨텍스트 노드는 XSLT 프로세서가 현재 찾고 있는 노드입니다. XSLT는 문서의 계층이 통과될 때 컨텍스트를 변경하고 XPath 표현식은 해당 특정 컨텍스트 노드에서 평가됩니다.

참고:

Junos OS 커밋 스크립트에서 컨텍스트 노드 개념은 Junos OS 계층 수준에 해당합니다. 예를 들어 XPath /configuration/system/domain-name 표현식은 컨텍스트 노드를 [edit system domain-name] 계층 수준으로 설정합니다.

모든 커밋 스크립트에 템플릿을 <xsl:template match="configuration"> 포함하는 것이 좋습니다. 이 요소를 사용하면 스크립트의 /configuration/ 프로그래밍 지침(예: <xsl:for-each> 또는 <xsl:if>)의 모든 XPath 표현식에서 루트 요소를 제외할 수 있으므로 Junos 계층 수준에서 XPath 표현식을 시작할 수 있습니다(예: system/domain-name). 자세한 내용은 커밋 스크립트에 대한 필수 상용구 판을 참조하십시오.

경로 및 구문 예측

XPath 표현식에는 두 가지 유형의 구문, 경로 구문 및 사전 구문이 포함됩니다. 경로 구문은 현재 컨텍스트 노드에서 문서 계층의 축 중 하나에서 경로 위치의 관점에서 검사할 노드를 지정합니다. 경로 구문의 몇 가지 예는 다음과 같습니다.

  • accounting-options- 현재 컨텍스트의 하위인 요소 accounting-options 노드를 선택합니다.

  • server/name-라는 요소 노드 name 가 현재 컨텍스트의 하위인 요소의 자식 server 인 을(를) 선택합니다.

  • /configuration/system/domain-name- 문서의configuration 루트 요소()의 자식인 요소의 자식인 라는 domain-name system 요소 노드를 선택합니다.

  • parent::system/host-name- 현재 컨텍스트 노드의 상위 요소인 요소의 자식인 요소 host-name system 노드를 선택합니다. 축은 parent:: 2개의 기간(..)으로 축으로 축약할 수 있습니다.

사전 구문을 사용하면 경로 구문으로 선택한 각 노드에서 테스트를 수행할 수 있습니다. 테스트를 통과한 노드만 결과 집합에 포함됩니다. 전제는 경로 노드 후 대괄호([ ]) 내부에 나타납니다. 다음은 사전 구문의 몇 가지 예입니다.

  • server[name = '10.1.1.1']-현재 컨텍스트의 하위인 라는 server 요소를 선택하고 값이 10.1.1.1인 하위 name 요소 를 입니다.

  • *[@inactive]—현재 컨텍스트의 하위이며 특성(축에서 attribute 노드 선택)이 있는 모든 노드*(@모든 노드와 일치)inactive를 선택합니다.

  • route[starts-with(next-hop, '10.10.')]- 현재 컨텍스트의 하위 요소이고 값이 문자열 10.10으로 시작하는 라는 next-hop 하위 요소가 있는 라는 요소를 route 선택합니다.

    starts-with 기능은 XPath에 내장된 많은 기능 중 하나입니다. XPath는 또한 관계 테스트, 평등 테스트 및 여기에 나열되지 않은 더 많은 기능을 지원합니다.

XPath 연산자

XPath는 및 (또는)와 같은 AND 표준 논리 연산자, 와 같은 숫자 연산자와 같은 <>=!=비교 연산자를 +*-지원합니다.|

XSLT에서 XSLT 스크립트는 XML 문서이고, 징후보다 적은 징후가 XML에서 이러한 방식으로 표현되기 때문에 XSLT에서는 항상 () 미만<의 연산 &lt; 자를 로, (<=) 연산자를 &lt;= 로 나타내야 합니다.

XPath 기능 및 운영자에 대한 자세한 내용은 포괄적인 XPath 참조 가이드를 참조하십시오. XPath는 http://w3c.org/TR/xpath W3C 사양에 완전히 설명되어 있습니다.