실시예 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
AAA의 하위 요소인 DDD의 모든 하위 요소를 선택합니다.
<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 하위 요소를 선택합니다.
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
/AAA/BBB[마지막()]
AAA의 마지막 BBB 하위 요소를 선택합니다.
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
실시예 5
//@ID
모든 ID 속성을 선택하세요.
<AAA>
<BBB ID = "b1"/>
<BBB ID = "b2"/>
<BBB 이름 = "bbb"/>
<BBB/>
</AAA>
//BBB[@id]
ID 속성이 있는 BBB 요소 선택
<AAA>
<BBB ID = "b1"/>
<BBB ID = "b2"/>
<BBB 이름 = "bbb"/>
<BBB/>
</AAA>
//BBB[@이름]
이름 속성이 있는 BBB 요소를 선택하세요.
<AAA>
<BBB ID = "b1"/>
<BBB ID = "b2"/>
<BBB 이름 = "bbb"/>
<BBB/>
</AAA>
//BBB[@*]
속성이 있는 BBB 요소를 선택하세요.
<AAA>
<BBB ID = "b1"/>
<BBB ID = "b2"/>
<BBB 이름 = "bbb"/>
<BBB/>
</AAA>
//BBB[아님(@*)]
속성 없이 BBB 요소 선택
<AAA>
<BBB ID = "b1"/>
<BBB ID = "b2"/>
<BBB 이름 = "bbb"/>
<BBB/>
</AAA>
실시예 6
속성 값을 선택 기준으로 사용할 수 있습니다. Normalize-space 함수는 선행 및 후행 공백을 제거하고 연속된 공백 문자열을 단일 공백으로 바꿉니다.
//BBB[@id='b1']
속성 ID가 포함된 BBB 요소를 선택하고 해당 값은 'b1'입니다.
<AAA>
<BBB ID = "b1"/>
<BBB 이름 = " bbb "/>
<BBB 이름 = "bbb"/>
</AAA>
//BBB[@name='bbb']
속성 이름이 포함된 BBB 요소를 선택하고 해당 값은 'bbb'입니다.
<AAA>
<BBB ID = "b1"/>
<BBB 이름 = " bbb "/>
<BBB 이름 = "bbb"/>
</AAA>
//BBB[normalize-space(@name)='bbb']
속성 이름과 해당 값(normalize-space 함수를 사용하여 선행 및 후행 공백을 제거한 후)이 포함된 BBB 요소를 선택합니다. 'bbb'
<AAA>
<BBB ID = "b1"/>
<BBB 이름 = " bbb "/>
<BBB 이름 = "bbb"/>
</AAA>
실시예 7
count() 함수는 선택된 요소의 개수를 계산할 수 있습니다.
//*[count(BBB)=2]
2개의 BBB 하위 요소가 있는 요소를 선택하세요.
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DD/>
</EEE>
</AAA>
//*[개수(*)=2]
자식이 2개인 요소를 선택하세요.
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DD/>
</EEE>
</AAA>
//*[개수(*)=3]
3개의 하위 요소가 있는 요소를 선택하세요.
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DD/>
</EEE>
</AAA>
실시예 8
name() 함수는 요소의 이름을 반환하고, start-with() 함수는 함수의 첫 번째 매개변수 문자열이 두 번째 매개변수 문자로 시작할 때 true를 반환하며, contain() 함수는 첫 번째 문자열 매개변수가 있을 때 true를 반환합니다. 두 번째 문자열 매개변수가 포함되면 true입니다.
//*[name()='BBB']
BBB라는 이름의 모든 요소를 선택합니다(여기서는 //BBB와 동일).
<AAA>
<숨은참조>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[시작-다음(이름(),'B')]
이름이 "B"로 시작하는 모든 요소를 선택합니다.
<AAA>
<숨은참조>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[contains(이름(),'C')]
이름에 "C"가 포함된 모든 요소를 선택하세요.
<AAA>
<숨은참조>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
실시예 9
//CCC //BBB를
사용하여 여러 경로를 함께 결합할 수 있습니다.
모든 CCC 및 BBB 요소 선택
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE//BBB |
AAA의 하위 요소인 모든 BBB 요소와 모든 EEE 요소를 선택합니다.
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE | //DDD/CCC |
병합할 수 있는 경로 수에는 제한이 없습니다.
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
실시예 10
하위 축에는 컨텍스트 노드의 하위 요소가 포함되어 있으며 기본 축이므로 무시할 수 있습니다
.
/child::AAA와 동일
<AAA>
<BBB/>
<CCC/>
</AAA>
/자식::AAA
/AAA와 동일
<AAA>
<BBB/>
<CCC/>
</AAA>
/AAA/BBB
/child::AAA/child::BBB와 동일
<AAA>
<BBB/>
<CCC/>
</AAA>
/자식::AAA/자식::BBB
/AAA/BBB와 동일
<AAA>
<BBB/>
<CCC/>
</AAA>
/자식::AAA/BBB
둘 다 결합 가능
<AAA>
<BBB/>
<CCC/>
</AAA>
예 11
하위 축에는 컨텍스트 노드의 하위 항목이 포함됩니다. 하위 노드는 하위 노드 또는 하위 노드의 하위 노드 등을 참조하므로 하위 축에는 속성 및 네임스페이스 노드가 포함되지 않습니다
.
문서 루트 요소의 모든 하위 항목을 선택합니다. 즉, 모든 요소가 선택됩니다.
<AAA>
<BBB>
<DDD>
<CCC>
<DD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/BBB/하위 항목::*
/AAA/BBB의 모든 하위 요소를 선택합니다.
<AAA>
<BBB>
<DDD>
<CCC>
<DD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
//CCC/하위 항목::*
상위 항목 중 CCC가 있는 모든 요소를 선택합니다.
<AAA>
<BBB>
<DDD>
<CCC>
<DD/>
<EEE/>
</CCC>
</DDD>
</BBB>
</AAA>