- XPath 1.0 튜토리얼을 번역한거라 내용이 부실할 수도 있음
- XPath는 XML의 경로를 뜻한다. XML의 정규표현식이라 보면 된다.
1. 경로 안에서 요소는 /로 구분한다. 예를 들어 /AAA/BBB는 AAA 루트 요소의 모든 BBB 요소를 찾는다.
2. 경로가 /로 시작되면 루트 요소부터 시작하는 절대경로라는 걸 의미한다.
3. 경로가 //로 시작하면 문서 내에 모든 요소가 대상이라는 걸 의미한다.
4. *는 와일드카드이다.
5. 요소 다음에 [내용]이 오면 그 요소들 중 내용에 부합하는 요소를 찾는다는 의미한다. 앞으로 이를 조건이라 칭하겠다. 조건 앞에 not을 주면
6. 조건에 숫자 n이 오면 n번째의 요소를 가져온다. 또한 last()가 오면 마지막 요소를 가져온다는 의미이다. 또한 조건에 간단한 사칙연산식, 조건식이나 XPath 함수가 올 수도 있다.
7. 조건에 not(내용)을 넣으면 그 내용에 부합하지 않은 요소를 가져올 수 있다
8. @는 속성을 뜻한다. 예를 들어 //@id면 모든 요소의 id 속성을 가져온다. 또한 조건으로도 사용할 수가 있고 속성이름에 와일드카드를 사용할 수도 있다..
9. 조건에 @속성='값'을 넣으면 속성의 값이 일치하는 요소를 가져올 수 있다.
10. count(s) 함수는 s 요소의 개수를 반환한다. 예를 들어 //*[count(BBB)=2]는 모든 요소 중 BBB의 개수가 2인 요소를 찾는다.
11. name() 함수는 그 요소의 name을 반환한다.
12. starts-with(s1, s2)는 s1이 s2로 시작하는 지 여부를 반환한다.
13. contains(s1, s2)는 s1에 s2가 있는지 여부를 반환한다.
14. string-lendgth(s)는 s의 길이를 반환한다.
15. 경로는 |을 통해 조합할 수 있다.
16. /child::AAA와 /AAA는 같은 뜻이다.
17. /descendant::BBB와 //BBB는 같은 뜻이다.
18. parent::는 노드의 부모 노드를 뜻하고 ancestor::는 노드의 모든 조상노드를 뜻한다.
19. following-sibling::는 노드의 오른쪽에 있는 모든 친척노드를 뜻하고 preceding-sibling은 노드의 왼쪽에 있는 모든 친척노드를 뜻한다.
20. following::는 노드의 오른쪽에 있는 모든 노드를 뜻하고 preceding::은 노드의 왼쪽에 있는 모든 노드를 뜻한다.
21. self::는 노드의 자신을 뜻하고 descendant-or-self::는 노드의 자신과 모든 자식노드를 뜻하고 ancestor-or-self::는 노드의 자신과 모든 조상노드를 뜻한다.
22. position 함수는 자신의 위치를, div 이항 연산자는 부동 나눗셈을, mod 이항 연산자는 나머지 연산을, float과 ceiling 함수는 올림, 내림을 수행하고 or과 and 이항 연산자는 늘 쓰이곤 하는 그 bool 연산자이다.
- 참조:
http://zvon.org/comp/m/xpath.html
댓글 0