XSLT 변수 개요
XSLT 스크립트에서 요소를 사용하여 <xsl:variable>
변수를 선언합니다. 속성은 name
대소문자 구분 변수의 이름을 지정합니다. 변수를 선언하면 달러 기호($)가 접두사된 변수 이름을 사용하여 XPath 표현식 내에서 이를 참조할 수 있습니다.
변수는 불변입니다. 변수를 선언할 때만 변수 값을 설정할 수 있으며, 그 이후에는 값이 고정됩니다. 태그에 속성과 표현식을 포함하여 select
변수를 초기화합니다 <xsl:variable>
. 다음 예는 변수 location
를 선언하고 초기화합니다. location
그런 다음 변수를 초기화하는 데 변수를 message
사용합니다.
<xsl:variable name="location" select="$dot/@location"/> <xsl:variable name="message" select="concat('We are in ', $location, ' now.')"/>
로컬 및 글로벌 변수를 모두 정의할 수 있습니다. 변수는 요소의 <xsl:stylesheet>
자식인 경우 전역적입니다. 그렇지 않으면 로컬입니다. 글로벌 변수의 값은 스타일 시트의 모든 곳에서 액세스할 수 있습니다. 로컬 변수의 범위는 해당 변수가 정의된 템플릿 또는 코드 블록으로 제한됩니다.
XSLT 변수는 계산하거나 정적으로 정의할 수 있는 모든 값을 저장할 수 있습니다. 여기에는 데이터 구조, XML 계층, 텍스트 및 매개 변수 조합이 포함됩니다. 예를 들어, 운영 모드 명령 의 XML 출력을 변수에 할당한 다음 변수 내의 계층에 액세스할 수 있습니다.
다음 템플릿이 변수를 message
선언합니다. 변수에는 message
텍스트 및 매개변수 값이 모두 포함됩니다. 템플릿은 메시지 변수의 값을 참조하여 시스템 로그 메시지를 생성합니다.
<xsl:template name="emit-syslog"> <xsl:param name="user"/> <xsl:param name="date"/> <xsl:param name="device"/> <xsl:variable name="message"> <xsl:text>Device </xsl:text> <xsl:value-of select="$device"/> <xsl:text> was changed on </xsl:text> <xsl:value-of select="$date"/> <xsl:text> by user '</xsl:text> <xsl:value-of select="$user"/> <xsl:text>.'</xsl:text> </xsl:variable> <syslog> <message> <xsl:value-of select="$message"/> </message> </syslog> </xsl:template>
결과 시스템 로그 메시지는 다음과 같습니다.
사용자 'user에 의해 디바이스 device-name 가 date 변경되었습니다.'
표 1 은 의사 코드 설명과 함께 XSLT 변수 선언의 예를 제공합니다.
변수 선언 |
의사 코드 설명 |
---|---|
|
라는 변수 |
|
라는 변수 |