< 이전 | 다음 >

학습 3.1: XPath 함수 및 복합 표현식 사용

이 학습에서는 JET 변환에서 XPath 함수 및 기타 복합 XPath 표현식을 사용하는 방법에 대해 설명합니다.
이 태스크 정보

복합 파생 속성 계산

이 학습서에는 설명되어 있지 않지만 파생 속성 계산에서는 정적 문자열을 JET 입력 모델에서 추출되는 값과 연결하는 것 이상의 작업을 빈번하게 수행해야 합니다. 이러한 조작은 XPath 표현식 내에서 XPath 함수를 호출하여 수행될 수 있습니다.

생성된 전자 우편 메시지가 사용자에게 사용자의 전자 우편 주소를 ID로 사용하고 생성된 암호를 사용하여 계정이 작성되었음을 알리기 위한 것이라고 가정하십시오. 생성된 암호는 주어진 이름의 첫 번째 문자에 성이 추가된 것이며 전체 암호는 소문자로 구성됩니다. 생성된 전자 우편 메시지에는 이 암호가 사용자에 대한 리마인더로 포함되어 있어야 합니다.

JET XPath 엔진에서는 이 타스크를 완료하는 데 도움이 되는 몇 가지 함수를 제공합니다. substring 함수는 문자열의 부분을 리턴하고 concat 함수는 둘 이상의 문자열을 연결하며 lowercase 함수는 대소문자 변환을 관리합니다. 다음 코드 단편에는 메일링 요소에 있는 암호의 가상 파생 속성에 대한 계산이 표시됩니다.

{lower-case(concat(substring($mailing/@firstName,1,1), $mailing/@lastName))}

JET에는 XPath 1.0 스펙 코어 함수 라이브러리에 정의된 대부분의 XPath 1.0 함수가 포함됩니다. 두 개의 함수(langid)만 구현되지 않습니다. JET에서는 몇 가지 추가 XPath 함수도 제공합니다.

XPath 경로 표현식 필터링

일부 경우에는 특정 기준에 따라 XPath 술부를 사용하여 요소의 서브세트를 처리해야 합니다. 술부는 단계와 일치하는 요소를 필터링하는 XPath 표현식의 해당 단계에 적용하는 표현식입니다. 술부는 부울 표현식 또는 정수 표현식이 될 수 있으며 이 경우 술부는 요소 세트의 1부터 시작하는 색인으로 처리됩니다. 술부는 대괄호([])로 묶여 있습니다.

다음 예제에서는 이 개념을 더 구체적으로 설명합니다. 다음과 같은 <c:iterate> 태그는 관심 있는 요소가 포함된 메일링 요소만 처리합니다.

<c:iterate select="$campaign/mailing[interest]" var="mailing">

XPath는 일치되는 노드의 카디널리티를 테스트하여 술부 표현식에 대한 관심의 결과를 부울 값으로 변환합니다. 표현식은 다음 예제와 동등합니다.

<c:iterate select="$campaign/mailing[count(interest) > 0]" var="mailing">

다음과 같은 <c:iterate> 태그는 Product1을 첫 번째 관심 제품으로 지정하는 메일링 요소를 처리합니다.

<c:iterate select="$campaign/mailing[interest[1]/@code = 'Product1']" var="mailing">

학습 체크포인트

이 학습에서는 JET 변환 작성 시 XPath 함수 및 복합 XPath 표현식이 유용한 경우에 대해 논의했습니다.

피드백