XPath 알아보기

Written by kwSeo

#XPath XPath는 XML를 보다 편하게 다룰 수 있게 해줍니다. XML DOM에서 원하는 요소에 쉽게 접근할 수 있게 해주죠. XPath는 이름 그대로 XML을 파일경로 입력하듯이 사용할 수 있습니다. 기존에 DOM을 그대로 사용하면 여간 불편한게 아니었는데 XPath를 사용함으로써 불편함이 많이 해소되었습니다. 아래의 내용은 W3Schools에서 발최한 XPath에 대한 설명입니다.

##경로표현

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

#Java에서 XPath를 사용하기

Done At: Jul 26,2015
Categories: