예 1
기본 XPath 구문은 파일 시스템에서 파일을 찾는 것과 유사합니다. 경로가 슬래시 /로 시작하는 경우 경로는 요소에 대한 절대 경로를 나타냅니다.
/AAA
AAA 루트 요소 선택
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> /AAA/CCC
AAA의 모든 CCC 하위 요소 선택
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> /AAA/DDD/BBB
DDD의 모든 하위 요소 선택 AAA 하위 요소
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA>
예제 2
경로가 이중 슬래시로 시작하는 경우 // 이는 이중 슬래시 뒤의 규칙을 만족하는 문서의 모든 요소 //를 의미합니다. (계층 관계에 관계없이) //BBB
모든 BBB 요소 선택
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA> //DDD/BBB
상위 요소가 DDD인 모든 BBB 요소 선택
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA>
예시 3
별표 *는 별표
/AAA/CCC/DDD/*
/AAA/CCC/DDD에 경로가 연결된 모든 요소 선택
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA> /*/*/*/BBB
3개의 상위 요소가 있는 모든 BBB 요소 선택
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA> //*
모든 요소 선택
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA>
예 4
제곱 숫자의 표현식은 다음과 같습니다. 요소를 추가로 지정해야 합니다. 여기서 숫자는 선택 세트의 요소 위치를 나타내고 last() 함수는 선택 세트의 마지막 요소를 나타냅니다.
/AAA/BBB[1]
AAA 요소 A BBB 하위 요소 선택
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA> /AAA/BBB[last()]
AAA의 마지막 BBB 하위 요소 선택
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA>
예 5
//@id
모든 ID 속성 선택
<AAA> <BBB id = \"b1\"/> <BBB id = \"b2\"/> <BBB name = \"bbb\"/> <BBB/> </AAA> //BBB[@id]
id 속성이 있는 BBB 요소 선택
<AAA> <BBB id = \"b1\"/> <BBB id = \"b2\"/> <BBB name = \"bbb\"/> <BBB/> </AAA> //BBB[@name]
선택 이름 속성이 있는 BBB 요소
<AAA> <BBB id = \"b1\"/> <BBB id = \"b2\"/> <BBB name = \"bbb\"/> <BBB/> </AAA> //BBB[@*]
속성이 있는 BBB 요소 선택
<AAA> <BBB id = \"b1\"/> <BBB id = \"b2\"/> <BBB name = \"bbb\"/> <BBB/> </AAA> //BBB[not(@*)]
속성이 없는 BBB 요소 선택
<AAA> <BBB id = \"b1\"/> <BBB id = \"b2\"/> <BBB name = \"bbb\"/> <BBB/> </AAA>
예 6
속성의 값을 선택 기준으로 사용할 수 있습니다. Normalize-space 함수는 앞뒤 공백을 제거하고 연속된 공백 문자열을 단일 공백으로 바꿉니다.
//BBB[@id='b1']
속성 id를 포함하고 그 값은 'b1'인 BBB 요소를 선택하세요.
<AAA> <BBB id = \"b1\"/> <BBB name = \" bbb \"/> <BBB name = \"bbb\"/> </AAA> //BBB[@name=\'bbb\']
다음을 포함하는 BBB 요소를 선택하세요. 속성 이름 및 값 'bbb'
<AAA> <BBB id = \"b1\"/> <BBB name = \" bbb \"/> <BBB name = \"bbb\"/> </AAA> //BBB[normalize-space(@name)=\'bbb\']
에 대해 속성 이름과 해당 값이 포함된 BBB 요소
<를 선택합니다(선행 및 속성 제거 후). 정규화 공간 함수를 사용한 후행 공백)은 'bbb'입니다. 🎜>
<AAA> <BBB id = \"b1\"/> <BBB name = \" bbb \"/> <BBB name = \"bbb\"/> </AAA>
count() 함수는 선택한 요소의 수를 계산할 수 있습니다
BBB 하위 요소 중 2개의 요소가 포함된 선택
<AAA> <CCC> <BBB/> <BBB/> <BBB/> </CCC> <DDD> <BBB/> <BBB/> </DDD> <EEE> <CCC/> <DDD/> </EEE> </AAA> //*[count(*)=2]
<AAA> <CCC> <BBB/> <BBB/> <BBB/> </CCC> <DDD> <BBB/> <BBB/> </DDD> <EEE> <CCC/> <DDD/> </EEE> </AAA> //*[count(*)=3]
<AAA> <CCC> <BBB/> <BBB/> <BBB/> </CCC> <DDD> <BBB/> <BBB/> </DDD> <EEE> <CCC/> <DDD/> </EEE> </AAA>
name() 함수는 요소의 이름을 반환하고, start-with() 함수는 함수의 첫 번째 매개변수 문자열이 다음으로 시작할 때 true를 반환합니다. 두 번째 매개변수 문자, 그리고 첫 번째 문자열 매개변수에 두 번째 문자열 매개변수가 포함되어 있으면 true를 반환하는 경우 contain() 함수가 true를 반환합니다.
BBB라는 이름의 모든 요소 선택(여기서는 //BBB와 동일)
<AAA> <BCC> <BBB/> <BBB/> <BBB/> </BCC> <DDB> <BBB/> <BBB/> </DDB> <BEC> <CCC/> <DBD/> </BEC> </AAA> //*[starts-with(name(),\'B\')]
<AAA> <BCC> <BBB/> <BBB/> <BBB/> </BCC> <DDB> <BBB/> <BBB/> </DDB> <BEC> <CCC/> <DBD/> </BEC> </AAA> //*[contains(name(),\'C\')]
<AAA> <BCC> <BBB/> <BBB/> <BBB/> </BCC> <DDB> <BBB/> <BBB/> </DDB> <BEC> <CCC/> <DBD/> </BEC> </AAA>
//CCC | /BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> </DDD> <EEE/> </AAA> /AAA/EEE | //BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> </DDD> <EEE/> </AAA> /AAA/EEE | //DDD/CCC | /AAA | //BBB
<AAA> <BBB/> <CCC/> <DDD> <CCC/> </DDD> <EEE/> </AAA>
/AAA
<AAA> <BBB/> <CCC/> </AAA> /child::AAA
<AAA> <BBB/> <CCC/> </AAA>
/child::AAA/child::BBB
<AAA> <BBB/> <CCC/> </AAA>
/AAA/와 동일 BBB
<AAA> <BBB/> <CCC/> </AAA>
<AAA> <BBB/> <CCC/> </AAA>
/descendant::*
<AAA> <BBB> <DDD> <CCC> <DDD/> <EEE/> </CCC> </DDD> </BBB> <CCC> <DDD> <EEE> <DDD> <FFF/> </DDD> </EEE> </DDD> </CCC> </AAA> /AAA/BBB/descendant::*
<AAA> <BBB> <DDD> <CCC> <DDD/> <EEE/> </CCC> </DDD> </BBB> <CCC> <DDD> <EEE> <DDD> <FFF/> </DDD> </EEE> </DDD> </CCC> </AAA> //CCC/descendant::*
<AAA> <BBB> <DDD> <CCC> <DDD/> <EEE/> </CCC> </DDD> </BBB> </AAA>