다음을 통해 공유


조건자

조건자는 축을 기준으로 노드 집합을 필터링하고 새 노드 집합을 생성하는 XPath 식입니다. 이 필터링 프로세스에서는 노드 집합의 각 노드에 대해 조건자를 순서대로 평가합니다. 노드에 대해 조건자를 평가할 때마다 다음 사항이 적용됩니다.

  • 컨텍스트 노드는 현재 평가 중인 노드입니다.

  • 컨텍스트 크기는 평가 중인 노드 집합의 노드 수입니다.

  • 컨텍스트 위치는 노드 집합에서 컨텍스트 노드의 위치입니다.

노드 집합에서 컨텍스트 노드의 마지막 컨텍스트는 위치 단계에 지정된 축이 문서 트리를 탐색하는 방향에 상대적입니다. 일반적으로 축은 정방향 또는 역방향으로 트리를 탐색합니다.

  • 정방향 축은 컨텍스트 노드 또는 컨텍스트 노드 뒤에 있는 노드가 포함된 축입니다. child::, descendant::, descendant-or-self::, following:: 및 following-sibling:: 축은 정방향 축입니다. 이 정방향 축은 노드 집합에서 문서 순서에 따라 첫 번째 위치 1에서 시작하여 노드에 숫자를 매깁니다.

  • 역방향 축은 컨텍스트 노드 또는 컨텍스트 노드 앞에 있는 노드가 포함된 축입니다. ancestor::, ancestor-or-self::, preceding:: 및 preceding-sibling:: 축은 역방향 축입니다. 이 역방향 축은 노드 집합에서 문서 순서 반대로 첫 번째 위치 1에서 시작하여 노드에 숫자를 매깁니다.

나머지 축에서 self:: 및 parent:: 축은 단일 노드를 반환합니다. 그러므로 이 두 축에는 정방향이나 역방향을 지정하는 것이 무의미합니다. attribute:: 및 namespaces:: 축에 대해 정의된 순서가 없으므로 정방향 축도 역방향 축도 아닙니다.

노드 선택

조건자 식은 숫자나 부울 값으로 평가됩니다.

조건자가 숫자로 평가되면 XPath는 이 숫자를 컨텍스트 노드의 컨텍스트 위치와 비교합니다. 이 숫자와 위치가 같을 경우 즉, 컨텍스트 노드가 트리에서 적절한 위치에 있을 경우 조건자는 true로 평가되고 이 컨텍스트 노드는 새 노드 집합에 포함됩니다. 그렇지 않으면 컨텍스트 노드가 새 노드 집합에서 제외됩니다.

조건자가 부울 값으로 평가되면 XPath는 boolean 함수를 사용하여 결과를 부울 값으로 변환합니다. 예를 들어, 조건자 [genre='Computer']를 평가하면 노드 집합이 나옵니다. 컨텍스트 노드에 Computer 내용이 포함된 <genre> 자식 요소가 있을 경우 이 조건자는 true로 평가되고 이 컨텍스트 노드는 새 노드 집합에 포함됩니다. 그렇지 않으면 컨텍스트 노드가 새 노드 집합에서 제외됩니다.

참고

숫자 조건자[x]는 부울 조건자 [position()=x]와 같습니다.

참고 항목

참조

위치 단계

노드 테스트