필터 및 필터 패턴

컬렉션에 필터 절 [pattern]을 추가하여 제약 조건 및 분기를 적용할 수 있습니다. 필터는 SQL WHERE 절과 유사합니다. 필터에는 필터 패턴이라는 패턴이 포함되어 있습니다. 필터 패턴은 부울 값으로 평가되며 컬렉션의 각 요소에 대해 테스트됩니다. 필터 패턴 테스트에 실패한 컬렉션의 요소는 결과 컬렉션에 포함되지 않습니다.

편의상 컬렉션을 필터 내에 배치할 경우 컬렉션에 멤버가 포함되어 있으면 부울 TRUE가 생성되고 컬렉션이 비어 있으면 FALSE가 생성됩니다. author/degree와 같은 식은 컬렉션에서 부울로 변환하는 함수를 의미하며 <degree>라는 자식 요소가 있는 <author> 요소가 있을 경우 TRUE로 평가됩니다.

지정된 식 수준에서 필요한 수만큼 필터를 표시할 수 있습니다. 빈 필터는 사용할 수 없습니다.

필터는 항상 컨텍스트와 관련하여 평가됩니다. 즉, book[author] 식은 발견한 모든 <book> 요소에 대해 <author> 자식 요소가 있는지 여부를 테스트합니다. 마찬가지로 book[author = 'Bob'] 식은 발견한 모든 <book> 요소에 대해 값이 Bob<author> 자식 요소가 있는지 여부를 테스트합니다. 마침표(.)를 사용하여 컨텍스트 값을 확인할 수도 있습니다. 예를 들어, book[. = 'Trenton'] 식은 현재 컨텍스트에서 발견한 모든 책에 대해 값이 Trenton인지 여부를 테스트합니다.

예제

참조 항목

book[excerpt]

<excerpt> 요소가 하나 이상 포함된 모든 <book> 요소

book[excerpt]/title

<excerpt> 요소가 하나 이상 포함된 <book> 요소 내의 모든 <title> 요소

book[excerpt]/author[degree]

<excerpt> 요소가 하나 이상 포함된 <book> 요소 내에 있으며 <degree> 요소가 하나 이상 포함된 모든 <author> 요소

book[author/degree]

<degree> 자식 요소가 하나 이상 있는 <author> 요소가 하나 이상 포함된 모든 <book> 요소

book[excerpt][title]

<excerpt> 요소와 <title> 요소가 하나 이상 포함된 모든 <book> 요소

참고 항목

참조

XPath 예제

개념

XPath 구문에 대한 샘플 XML 파일(inventory.xml)