pat coding
[ Xpath ] Xpath란? 본문
728x90
Xpath 란?
XML 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어
1. 노드의 형식
1. 루트 노드(root node) : xml 자체를 표현하는 가상 노드
2. 요소 노드(element node) : 태그
3. 텍스트 노드(text node) : 태그 내용
4. 속성 노드(attribute node) : 속성
5. 주석 노드(comment node) : 주석문
6. 네임스페이스 노드(namespace node) : xmlns: 로 시작하는 태그
7. 처리 명령 노드(processing instruction node) : <? 태그로 시작하는 것
2. 위치경로
1. 노드 이름
- 해당 노드이름과 일치하는 모든 노드를 선택
2. /
- 루트 노드부터 순서대로 탐색
3. //
- 현재 노드의 위치와 상관없이 지정된 노드에서부터 순서대로 탐색
4. .
- 현재 노드를 선택
5. ..
- 현재 노드의 부모 노드를 선택
6. @
- 속성 노드를 선택
3. 위치경로 예제
developer : <developer>요소를 모두 선택함.
/p_languages : 루트 노드의 자식 노드인 <p_languages>요소를 선택함. (절대 경로 탐색)
p_languages/language : <p_languages>요소의 자식 노드 중 <language>요소를 모두 선택함. (상대 경로 탐색)
// : 루트 노드의 하위 노드를 모두 선택함.
//priority : 위치에 상관없이 <priority>요소를 모두 선택함.
.// : 현재 노드의 하위 노드를 모두 선택함.
version/@status : 모든 <version>요소의 status 속성 노드를 모두 선택함.
4. 문법 및 예제
1. contains : 포함 하는 값을 찾아줌
'//div[contains(@class,"class명")]'
- div에서 class명이 포함하는 요소 선택
2. last : 마지막 값을 찾아줌
'//div(@class="class명")/a[last()]'
- div에서 class명으로 된 것들 밑에 있는 a 태그 여러개중 마지막 요소 선택
3. not
'img[contains(@class, "alpha") and not(contains(@class, 'beta'))]'
- class에 "beta"라는 값이 없으면서 "alpha"클라스를 포함한 이미지 선택
4. and
'img[contains(@class, "alpha") and contains(@class, "beta")]'
- class에 "alpha"라는 값과 "beta"라는 값을 모두 포함한 이미지 선택
5. or
'img[contains(@class, "alpha") or contains(@class, "beta")]'
- "alpha"라는 클라스을 가진 이미지 또는 "beta"라는 클라스을 가진 이미지 선택
6. position
'//div(@class="class명")/a[position() > 1]'
- div에서 class명으로 된 것들 밑에 있는 a 태그 여러개중 첫번째를 제외한 요소 선택
5. 추가 활용 예제
추가 참고 자료 : https://devhints.io/xpath
728x90
'Etc' 카테고리의 다른 글
CURL 통신 (1) | 2020.08.07 |
---|---|
images BASE64 encode, decode (1) | 2020.04.21 |
Watir 란? (1) | 2020.01.15 |
[HTML] 속성(id, class, name) (0) | 2019.12.23 |
[T-MAP API]검색어를 통한 지도검색 (4) | 2019.11.12 |
Comments