XSLT - XPath 함수


1. XPath 함수 : Node-Set 함수


1) last()

현재 단계의 가장 마지막 노드의 위치를 반환한다.


2) position()

현재 위치를 반환한다.


3) count({노드})

해당 노드의 전체 갯수를 반환한다.


4) id({개체})

각 노드에 유일한 ID가 부여되어 있을 때 그 ID를 가진 노드를 반환한다.


5) local-name({노드})

노드의 이름을 반환한다.


6) namespace-uri({노드})

노드가 정의된 URI를 반환한다.


7) name({노드})

노드의 확장이름을 포함한 이름을 반환한다. element와 attribute노드를 제외하면 local-name과 완전히 동일하다.



2. XPath 함수 : String 함수


1) string({숫자})

숫자를 문자열로 변환한다.


2) concat({문자열1}, {문자열2}, ...)

문자열을 합친다.


3) starts-with({문자열1}, {문자열2})

contains함수와 약간 다르게 문자열1이 문자열2로 시작할 경우에만 true를 반환하며, 아니면 false를 반환한다.

- 예제:

starts-with("The Neabc", "abc") --> false를 반환한다.

starts-with("The Neabc", "Th") --> true를 반환한다.


4) contains({문자열1}, {문자열2})

문자열1에서 문자열2에 해당하는 문자열이 존재하는지 여부를 검사하여 존재하면 true를, 존재하지 않으면 false를 반환한다.

- 예제:

contains("The Neabc", "abc") --> true를 반환한다.


5) substring-before({문자열1}, {문자열2})

문자열1에서 문자열2가 나오기 이전까지의 문자열을 찾아 반환한다.


6) substring-after({문자열1}, {문자열2})

문자열1에서 문자열2 이후의 문자열을 찾아 반환한다.


7) substring({문자열}, {위치}, {길이})

문자열의 특정 위치에서 해당 길이만큼의 문자열을 반환한다.

- 예제:

substring("12345", 1.5, 2.6) --> "234"를 반환한다.

substring("12345", 0, 3) --> "12"를 반환한다.

substring("12345", 0 div 0, 3) --> ""을 반환한다.

substring("12345", 1, 0 div 0) --> ""을 반환한다.

substring("12345", -42, 1 div 0) --> "12345"를 반환한다.

substring("12345", -1 div 0, 1 div 0) --> ""를 반환한다.


8) string-length({문자열})

문자열의 길이를 반환한다.


9) normalize-space({문자열})

공백을 제거한 문자열을 반환한다. 공백이 하나일 때는 제외.


10) translate({문자열}, {기본문자열}, {변환문자열})

문자열에서 기본문자열에 있는 문자들을 변환문자열에 있는 문자들로 변환해서 반환한다.

- 예제:

translate("bar","abc","ABC") --> "BAr"를 반환한다.

translate("--aaa--","abc-","ABC") --> "AAA"를 반환한다.



3. XPath 함수 : Boolean 함수


1) boolean({개체})

개체를 참/거짓으로 변환한다.

- 숫자는 0이 아니고 NaN도 아닐때 true

- 노드는 empty가 아닐때 true

- 문자열은 길이가 0이 아닐때 true


2) not({조건문 또는 변수})

조건문 또는 변수가 true이면 false를 반환하고, false이면 true를 반환한다.


3) true()

참을 반환한다


4) false()

거짓을 반환한다.


5) lang({문자열})

문자열의 언어가 xml:lang 속성에서 정의된 언어인지 여부를 조사해서 참/거짓을 반환한다.

- 예제:

<para xml:lang="en"/>

<div xml:lang="en"><para/></div>

<para xml:lang="EN"/>

<para xml:lang="en-us"/>


위 노드 중 어느 하나만 있더라도 다음 예제는 true를 반환한다.


lang("en")



4. XPath 함수 : Number 함수


1) number({문자열 또는 조건문})

문자열을 숫자로 변환한다. 조건문은 true이면 1로, false이면 0으로 변환한다.


2) sum({노드})

노드들이 가진 값의 합계를 숫자로 반환한다.


3) floor({숫자})

주어진 숫자보다 작은 수 중에서 가장 큰 정수를 반환한다.


4) ceiling({숫자})

주어진 숫자보다 큰 수 중에서 가장 작은 정수를 반환한다.


5) round({숫자})

주어진 숫자를 반올림한 정수를 반환한다.



5. XPath 함수 : 기타 함수


1) format-number({숫자}, {formatted-string}, {locale-string})

숫자를 특정한 형태로 변환하여 표시한다. 마지막의 {locale-string}은 일반적으로 잘 사용하지 않는다.

- 예제:

format-number(position(), '000')

format-number(가격, '#,##0.00')


2) current()

현재 위치의 노드를 반환한다.

- 예제:

<xsl:value-of select="current()"/>

이것은 다음과 같다.

<xsl:value-of select="."/>


그러나, 


<xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>

이것은 item요소의 name 속성이 현재 노드의 ref 속성값과 같은 값을 가지는 모든 item 요소를 반환하며

아래와 다르다.


<xsl:apply-templates select="//glossary/item[@name=./@ref]"/>

이것은 item 요소의 name 속성이 역시 같은 요소(item)의 ref 속성과 값이 같을 때만 반환한다.

이것은 아래와 같다.

<xsl:apply-templates select="//glossary/item[@name=@ref]"/>




※ 에구에구... 지금까지 XML, XSL 관련 내용을 수집하고 읽고 정리하느라 열라 힘들었음. ㅡ.ㅜ;;

    어딜가도 이만큼 정리 잘 된 문서는 찾아보기 힘들거임. 진짜로!!!

    심지어는 www.w3.org에 가도 이렇게 정리는 안 되어 있음!!!


'Tech: > XML·XSL' 카테고리의 다른 글

XSLT - Tip  (0) 2008.06.26
XML 기본개념: 추가  (0) 2008.06.26
XSL 사용예제 - DNA 구조 ^^;  (0) 2008.06.26
XSL 기본문법(2)  (0) 2008.06.26
XMLHTTP 사용시 주의사항  (0) 2008.06.26


Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]