방랑로그

[java] XPath 본문

IT개발/JAVA & J2EE

[java] XPath

야키다 2017. 12. 15. 16:14

[java] XPath 






2007.01.17 10:50







뽀세이돈(mamilove)

http://cafe.naver.com/boiod/151 이<INPUT type=hidden value=http://cafe.naver.com/boiod/151 name=cafeurlstr>












XSL을 이용한 XML문서 출력 : XPath기초 - 6 (xml 강좌 15.) src=http://blogimgs.naver.com/imgs/nblog/spc.gifxml src=http://blogimgs.naver.com/imgs/nblog/spc.gif 


2005/04/19 09:19








▣ XSL을 이용한 XML문서 출력 : XPath기초 - 6







§ 학습목표

  1. XPath의 개념을 설명할 수 있다.
  2. XPath의 연신자를 알고 사용할 수 있다.










1. XPath의 기초


XPath의 표현법은 잘 알아 두는 것이 XSL을 이해하고 사용하는데 많은 도움을 줄것이다. 이에 여기에 대한 설명을 간단히 하고자 한다.


XSL을 이전 강의들을 통해 공부하면서 에서 /는 문서 전체를 가리킨다라고 했는데, 이 match속성에 들어 오는 이 값이 XPath의 표현이다.


XPath란 XML 문서의 각 부분(node:엘리먼트)에 접근할 수 있도록 해주는 언어로서 XSL과 XLink에서 사용하기 위해 설계된 것이다.


template의 match속성이나 value-of의 select 속성등 XML 문서의 내용을 가리키는 모든 부분에서 XPath의 표현이 사용된다. 때문에 XPath는 XSL에서의 핵심기술이라고 할 수 있다.


다음의 template을 예로 보도록 하자.






  name : 








  Kim



이 예제에서 잘못된 XPath를 사용하게 되면 데이터는 표시되지 않는다. 아래에 잘못된 XPath를 적용한 예가 있다. 비교해 보기 바란다.






  name : 




2. XPath의 연산자


(1) 논리 및 비교 연산자


































연산자


의 미

and

논리합

or

논리곱

not()

논리부정

=

같다

!=

다르다

<

작다

<=

작거나 같다

>

크다 ( '>' 사용가능)

>=

크거나 같다. ('>=' 사용가능)



(2) 산술연산자




























연산자


의미



+


덧셈

 


-


뺄셈

 


*


곱셈

 


div


나눗셈

10 div 3 = 3.333333333333


mod


나머지연산

10 mod 3 = 1



(3) 노드를 나타내는 연산자


노드(node)란 XML에서 각 엘리먼트나 애트리뷰트는 트리구조의 각 단계로 나타낼 수 있는데 이것을 노드라고 부른다. 이때 노드를 나타내는 여러가지 방법이 있는데 이 방법은 노드 연산자라는 것을 사용한다.


다음과 같은 요소를 예로 들어 보자




위의 의미는 이미 알고 있는 것처럼 books엘리먼트의 자식인 book엘리먼트를 가리키고 있다. 이때 중간에 든 /가 자식요소나 속성을 가리키는 XPath연산자이다. 만약 그렇다면 현재 노드의 자식요소, 손자요소, 증손자요소 등을 포함하는 모든 '후손'요소중에 이름이 book인 엘리먼트를 지정하고 싶은 경우가 있다면....일일이 모두 모든 경로를 다 포함하여 지정해줘야만 할까...??


아니다. 이때 사용하는 //라는 XPath 연산자가 있다. 즉, books엘리먼트 의 후손들중에 book이라는 모든 엘리먼트를 찾고 싶다면 다음과 같이 지정해 주면 된다.




위의 예제로 적용받을 수 있는 노드들의 예는 다음과 같다. 물론 여기 있는것만이 전부는 아니다.


books/book

books/HNC/book

books/colors/book

books/HNC/cab/book

      :


이와 같은 XPath연산자는 여러종류가 있다.
















연산자


의미



/


자식노드 지정

books/book (의 자식인 )


//


후손전체지정

books//title (의 후손중 모든 



'IT개발 > JAVA & J2EE' 카테고리의 다른 글

[java] xml (ex)  (0) 2017.12.15
[java] XPath (ex)  (0) 2017.12.15
[java] XPath  (0) 2017.12.15
[java,php] Session iframe 문제  (0) 2017.12.15
[JDK] 환경설정,컴파일,실행  (0) 2017.12.15
Comments