다음을 통해 공유


위치 경로에 노드 테스트 지정(SQLXML 4.0)

적용 대상: SQL ServerAzure SQL Database

노드 테스트는 위치 단계에서 선택한 노드 유형을 지정합니다. 모든 축(자식, 부모, 특성 또는 자체)에는 주 노드 유형이 있습니다. 특성 축의 경우 주 노드 유형은 특성>입니다<. 부모, 자식자체 축의 경우 주 노드 형식은 요소>입니다<.

참고 항목

와일드카드 노드 테스트 *(예: child::*)는 지원되지 않습니다.

노드 테스트: 예제 1

위치 경로 child::Customer 는 컨텍스트 노드의 Customer> 요소 자식을 선택합니다<.

이 예제에서는 child 축이며 Customer 노드 테스트입니다. 자식 축의 주 노드 형식은 요소>입니다<. 따라서 고객> 노드가 요소> 노드인 경우< 노드 테스트는 TRUE입니다<. 컨텍스트 노드에 Customer> 자식이 없<으면 빈 노드 집합이 반환됩니다.

노드 테스트: 예제 2

위치 경로 attribute::CustomerID 는 컨텍스트 노드의 CustomerID 특성을 선택합니다.

예제 attribute 에서는 축이며 CustomerID 노드 테스트입니다. 특성 축의 주 노드 형식은 특성>입니다<. 따라서 CustomerID가 특성> 노드인 경우 노드 테스트는 TRUE입니다<. 컨텍스트 노드에 CustomerID가 없으면 빈 노드 집합이 반환됩니다.

참고 항목

이 XPath 구현에서 위치 단계가 스키마에 선언되지 않은 요소> 또는< 특성> 형식을 참조<하는 경우 오류가 생성됩니다. 이 동작은 빈 노드 집합을 반환하는 MSXML에서의 XPath 구현과는 다릅니다.

축의 약어 구문

위치 경로에 대한 다음 축약형 구문이 지원됩니다.

  • attribute:: 는 약어로 지정할 @수 있습니다.

    위치 경로 Customer[@CustomerID="ALFKI"] 는 .child::Customer[attribute::CustomerID="ALFKI"]

  • child:: 위치 단계에서 생략할 수 있습니다.

    따라서 자식이 기본 축입니다. 위치 경로 Customer/Order 는 .child::Customer/child::Order

  • self::node() 는 한 마침표(.)로 축약할 수 있으며 parent::node() 두 개의 마침표(..)로 축약할 수 있습니다.