컴퓨터 공부/XML

[5월 18일 2교시] XPath

려리군 2009. 5. 18. 15:31

XPath Demo 웹사이트

http://dmag.upf.edu/contorsion/query.jsp


XPath

XML 문서를 트리 형태로 취급

위치 경로 : Step/Step/.../Step의 형태.

절대경로 : /부터 시작(Root부터)


상대경로 : 현재 Context Node부터

Location Step : Path를 이루는 단위

 - Axis::Node-Test(predicate)*형태

 - step간 관계::Node-Test(필터)*


XPath Axis


① child:: 바로 하위 자식 노드들. 생략 가능.

② descendant:: 하위 구조를 이루는 모든 자손 노드들.

③ parent:: 부모노드

④ accestor:: 상위 구조를 이루는 직계 노드들.

⑤ following-sibling:: Context의 동생 노드

⑥ preceding-sibling:: 형 노드들.

⑦ following:: 문서에 나타나는 순서에서 context노드 다음에 기술되는 노드. 자손 노드는 아님.

⑧ preceding:: 문서에 나타나는 순서에서 context노드 이전에 기술되는 노드. 선조 노드는 아님.

⑨ ancestor-or-self:: 현재 노드를 포함한 선조노드들.

⑩ descendant-or-self:: 현재 노드를 포함한 자손노드들.

⑪ attribute:: 현재 노드가 가진 속성 노드들. 

⑫ namespace:: 현재 노드가 가진 네임스페이스 노드.

⑬ self:: 현재 노드.


Abbreviated XPath Syntax

/ : 루트노드.

// : 현재 노드로부터 위치에 상관하지 않고 선택된 값과 맞는(match) 노드들을 선택한다.

name : 주어진 이름을 가진 자식(child::) 엘레먼트들.

@ : attribute를 선택한다.

. : 현재 context 노드

.. : 현재 노드의 부모 노드

* : 어떤 element 노드라도 match된다.


predicate

조건(필터)의 역할을 한다.

[(조건식)] 형태로 표현.

연산자 사용 가능 <=, <, >=, >, =, !=, and, or


XPath 함수http://www.w3schools.com/xpath/xpath_functions.asp