#XPath XPath는 XML를 보다 편하게 다룰 수 있게 해줍니다. XML DOM에서 원하는 요소에 쉽게 접근할 수 있게 해주죠. XPath는 이름 그대로 XML을 파일경로 입력하듯이 사용할 수 있습니다. 기존에 DOM을 그대로 사용하면 여간 불편한게 아니었는데 XPath를 사용함으로써 불편함이 많이 해소되었습니다. 아래의 내용은 W3Schools에서 발최한 XPath에 대한 설명입니다.
- XPath는 XML 문서의 한 부분입니다.
- XPath는 XML 문서를 탐색하기 위해 경로표현식을 사용합니다.
- XPath는 표준 함수 라이브러리를 포함합니다.
- XPath는 XSLT에서 중요한 요소입니다.
- XPath는 W3C 표준입니다.
##경로표현
XPath에서는 리소스경로처럼 XML 문서 내의 요소에 경로를 통해 접근할 수 있습니다.
Expression | Description |
---|---|
nodename | 현 노드에서 ‘nodename’에 해당하는 요소를 선택합니다. 경로가 nodename으로 끝날 경우 nodename의 값을 의미하기도 합니다. |
/ | 루트노드에서부터 선택합니다. |
// | 위치와는 상관없이 해당하는 노드를 모두 선택합니다. |
. | 현재 요소를 의미합니다. |
.. | 부모 요소를 의미합니다. |
* | 모든 요소를 의미합니다. |
@ | 속성을 의미합니다. |
@* | 모든 속성을 의미합니다. |
nodename[index] | 노드 배열을 의미합니다. 인텍스는 1부터 시작합니다. |
###예제 간단한 예제와 함께 XPath 경로를 어떻게 사용하는지 알아보겠습니다.
####XML Code
<personList>
<person id="abcdefg">
<name>kwSeo</name>
<age>25</age>
<tel>010-1111-1111</tel>
</person>
<person id="aaaaa12">
<name>hongKD</name>
<age>30</age>
<tel>010-2222-2222</tel>
</person>
</personList>
####Result
Expression | Description | Result |
---|---|---|
//person | 모든 person 노드를 선택합니다. | person NodeList |
/personList/person[1]/name | 첫 번째 person 요소의 자식 요소인 name의 값(Child Text)을 선택합니다. | kwSeo |
//person[2]/@id | 두 번째 person 요소의 id 속성을 선택합니다. | aaaaa12 |
//person[@id] | id 속성을 가진 모든 person 요소를 선택합니다. | person NodeList |
//person[@id=’abcdefg’] | id가 abcdefg인 person 요소를 선택합니다. | person[1] element |
/personList/person[age > 25] | person의 자식 요소인 age의 값이 25이상인 person 요소를 선택합니다. | person[2] element |
/personList/person[last()-1] | 뒤에서 두 번째 person 요소를 선택합니다. | person[1] element |