728x90
728x90

▶ XSLT XPATH  노드 접근 표현식의 문법을 알아보겠습니다. XPATH는 XML 문서의 요소들을 노드 개념으로 접근, 소스 트리의 정확한 위치를 지정해주기 위한 경로지정 문법으로 XML과 별개의 문법 체계를 지닙니다.

 

 

XPATH : XML Path Language. W3C의 표준으로 확장 생성 언어 문서의 구조를 통해
경로 위에 지정한 구문을 사용하여 항목을 배치, 처리하는 방법을 기술하는 언어로
XSL 변환 (XSLT)과 XML 지시자 언어(XPointer)에 쓰입니다.
XML 문서의 노드를 정의하기 위해 경로식을 사용하며함수와 기타 확장 가능 표현들이 있습니다. (출처)

'XPath is a language for addressing parts of an XML document,designed to be used by both XSLT and XPointer'

 

 

용어

 

  • tag : <로 시작해서 >로 끝나는 형식정의로 시작태그, 종료태그, 빈태그가 있습니다.

  • element : 시작, 종료태그와 태그 사이의 모든 내용으로 태그, 자식element, 속성, text(contents)가 있습니다.

  • node : XML문서는 여러 개의 Nodes(가지)로 구성된 Tree로 비유됩니다. XPath의 Node는 element, attribute, text, namespace, processing-instruction, comment, document 7가지가 있습니다. 

  • 노드 사이의 관계의 용어는 부모노드 Parent, 자식노드 Children, 형제노드 Siblings, 조상노드 Ancestors, 자손노드 Descendants를 사용합니다.

  • root element : Element tree 중 최상위의 Element

  • Atomic values : 부모나 자식이 없는 단일 Node들의 값

  • Items :  Atomic values 단일 값들과 Node들

 

 

 

 

XSLT XPATH  노드 접근 표현식


 

  • / : 최상위 엘리먼트 or 가상의 루트 노드

  • * : 노드 전체

  • . : 노드 자신

  • /a/b/c : 루트 노드의 자식 a의 자식 b의 자식인 c

  • a : 노드 자신 (상대경로)

  • //a : 모든 노드 중 a 노드 (첫 노드 검색 후 작업종료)

  • a[b] : b 노드를 자식으로 갖는 a노드

  • a[b='c'] : 자식 b 노드가 c텍스트를 갖는 a 노드

  • a[b='c']/d : 자식 b 노드가 c텍스트를 갖는 a 노드의 자식 d노드

  • a/@b : a노드의 속성 b

  • a[@b] : b 속성을 갖는 a노드

  • a[@b='c'] : b속성값 c를 갖는 a노드

  • a[@b='c']/d : b속성값 c를 갖는 a 노드의 자식 d노드

  • a/@* : a의 모든 속성노드

  • a/* : a의 모든 자식노드

 

 

 

XPATH 함수


XPath는 100여개 이상의 내장함수를 포함하고 있습니다. 이러한 함수들은 문자열, 숫자, 날짜와 시간비교, 시퀀스 생성, 논리값 등 매우 다양합니다. (출처)

 

  • nodename : 지정한 노드이름을 가진 모든 노드를 선택

  • name() : 노드명 반환 (ex. a/b/c/name())

  • processing-instruction() - 처리지시문을 반환

  • comment() - 주석 반환

  • text() : 노드 자신의 PCDATA 만 반환. (자식 X)

  • position() : 노드의 위치 지정 (ex. //a[position()=2])

  • last() : 노드집합의 마지막 노드

  • count() : 반환된 노드집합의 갯수

  • number() : Text형인 PCDATA를 숫자형으로 변환

  • sum() : 노드집합 안의 모든 산술값들의 합

  • boolean() : 값이 숫자 0이면 false, 나머지 true / 문자열일때 하나 이상이면 true / 노드집합일 때 비어있으면 false

  • not() : 반환값의 반대 값 확인. 요소의 유무 확인에 사용

  • true() / false() : 항상 true/false 값을 반환

  • contains() : 데이터 검색

  • stars-width() : 특정 문자열로 시작하는지 유무

  • string() : 값을 문자열로 반환

  • string-length() - 문자길이를 반환

  • concat(문자열1,문자열2) - 두 문자열을 합친다.

  • contains(소스문자열,찾는문자열) - 문자열에 특정문자가 있는지를 Boolean값으로 반환

  • substring(소스문자열,숫자) - 문자열로부터 숫자만큼 이후 문자를 반환

  • substring-after(소스문자열,특정문자) - 처음 만나는 특정문자 뒤의 모든 문자를 반환

  • substring-before(소스문자열,특정문자) - 처음 만나는 특정문자 앞의 모든 문자를 반환

  • translate(소스문자열,찾을 문자열,대치할 문자열) - 소스문자열에서 문자를 찾아 바꾼다.

 

 

 

참고

www.w3schools.com/xml/xsl_elementref.asp

 

 

출처 

www.nextree.co.kr/p6278/

blog.daum.net/webdeveloper/8663454

728x90
728x90
블로그 이미지

coding-restaurant

코딩 맛집에 방문해주셔서 감사합니다.

,

v