다음을 통해 공유


위치 경로에서 선택 조건자 지정(SQLXML 4.0)

적용 대상:SQL ServerAzure SQL Database

조건자는 축과 관련하여 노드 집합을 필터링합니다(SELECT 문의 WHERE 절과 유사). 조건자는 대괄호 사이에 지정됩니다. 노드 집합의 각 노드를 필터링하기 위해 해당 노드가 컨텍스트 노드로 사용되고 노드 집합의 노드 수가 컨텍스트 크기로 사용되어 조건자 식이 평가됩니다. 조건자 식이 해당 노드에 대해 TRUE로 평가되면 노드가 결과 노드 집합에 포함됩니다.

XPath는 위치 기반 필터링도 허용합니다. 숫자를 계산하는 조건자 식은 해당 서수 노드를 선택합니다. 예를 들어 위치 경로 Customer[3] 는 세 번째 고객을 반환합니다. 이러한 숫자 조건자는 지원되지 않습니다. 부울 결과를 반환하는 조건자 식만 지원됩니다.

참고 항목

이 XPath 구현의 제한 사항과 XPath 구현과 W3C 사양 간의 차이점에 대한 자세한 내용은 XPath 쿼리 사용 소개(SQLXML 4.0)를 참조하세요.

선택 조건자: 예제 1

다음 XPath 식(위치 경로)은 현재 컨텍스트 노드에서 ALFKI 값을 가진 CustomerID<모든> Customer 요소 자식을 선택합니다.

/child::Customer[attribute::CustomerID="ALFKI"]  

이 XPath 쿼리에서 childattribute는 축 이름이고, Customer는 노드 테스트(요소가 축의 <>인 경우 TRUE)입니다.child attribute::CustomerID="ALFKI" 는 조건자입니다. 조건자 attribute 에서 축이며 CustomerID 노드 테스트입니다(특성이 특성 축의 주 노드 형식이므로 CustomerID가 컨텍스트 노드<>의특성인 경우 TRUE).

축약형 구문을 사용하여 XPath 쿼리를 다음과 같이 지정할 수도 있습니다.

/Customer[@CustomerID="ALFKI"]  

선택 조건자: 예제 2

다음 XPath 식(위치 경로)은 현재 컨텍스트 노드에서 SalesOrderID 특성이 값 1인 Order<>선택합니다.

/child::Customer/child::Order[attribute::SalesOrderID="1"]  

이 XPath 식에서 childattribute는 축 이름입니다. Customer, Order노드 SalesOrderID 테스트입니다. attribute::OrderID="1" 는 조건자입니다.

축약형 구문을 사용하여 XPath 쿼리를 다음과 같이 지정할 수도 있습니다.

/Customer/Order[@SalesOrderID="1"]  

선택 조건자: 예제 3

다음 XPath 식(위치 경로)은 현재 컨텍스트 노드에서 하나 이상의 <ContactName 자식이 있는 모든 < 자식을> 선택합니다.

child::Customer[child::ContactName]  

이 예제에서는 ContactName이 주석이 <추가된 XSD 스키마에서><> 요소의 자식 요소라고 가정합니다.

이 XPath 식 child 에서 축 이름입니다. Customer는 노드 테스트입니다(요소가 축의Customer 주 노드 형식 < 이기 때문에 child child::ContactName 는 조건자입니다. 조건자 child 에서 축이며 ContactName 노드 테스트(요소>.

이 식은 ContactName 요소 자식이 있는< 컨텍스트 노드의 Customer>< 반환합니다.>

축약형 구문을 사용하여 XPath 쿼리를 다음과 같이 지정할 수도 있습니다.

Customer[ContactName]  

선택 조건자: 예제 4

다음 XPath 식은 ContactName 요소 자식이 없는<>

child::Customer[not(child::ContactName)]  

이 예제에서는 ContactName<이> XML 문서에서 Customer>자식 요소이며 데이터베이스에 ContactName 필드가 필요하지 않다고 가정합니다.

이 예제에서는 child 축입니다. Customer는 노드 테스트(요소Customer 노드인 <경우 > TRUE)입니다. not(child::ContactName) 는 조건자입니다. 조건자 child 에서 축이며 ContactName 노드 테스트(요소ContactName 노드인 경우 < TRUE)입니다>.

축약형 구문을 사용하여 XPath 쿼리를 다음과 같이 지정할 수도 있습니다.

Customer[not(ContactName)]  

선택 조건자: 예제 5

다음 XPath 식은 현재 컨텍스트 노드에서 CustomerID<모든> Customer 자식을 선택합니다.

child::Customer[attribute::CustomerID]  

이 예제 child 에서는 축이며 Customer 노드 테스트입니다(요소Customer 노드인 <경우 > TRUE). attribute::CustomerID 는 조건자입니다. 조건자 attribute 에서 축이며 CustomerID 조건자입니다(특성CustomerID>TRUE).

축약형 구문을 사용하여 XPath 쿼리를 다음과 같이 지정할 수도 있습니다.

Customer[@CustomerID]  

선택 조건자: 예제 6

Microsoft SQLXML 4.0에는 다음 예제와 같이 조건자의 교차 제품을 포함하는 XPath 쿼리에 대한 지원이 포함되어 있습니다.

Customer[Order/@OrderDate=Order/@ShipDate]  

이 쿼리는 OrderOrderDate 중 하나의 ShipDate와 동일한 Order가 있는 모든 고객을 선택합니다.

참고 항목

주석이 추가된 XSD 스키마 소개(SQLXML 4.0)
클라이언트 쪽 XML 서식 지정(SQLXML 4.0)