<xsl:with-param> 요소
매개 변수를 템플릿에 전달합니다.
<xsl:with-param
name = QName
select = Expression
</xsl:with-param>
특성
name
필수 요소. 매개 변수의 정규화된 이름(XSLT)입니다.select
현재 컨텍스트와 일치 여부를 확인할 식(XSLT)입니다. 기본값은 없습니다. 내용이 없을 경우 빈 문자열이 생성됩니다.
요소 정보
발생 횟수 |
제한 없음 |
부모 요소 |
|
자식 요소 |
xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable |
설명
name 특성이 필요합니다. 매개 변수 이름을 지정합니다. 이 매개 변수는 바인딩 값을 대체할 변수입니다.
<xsl:call-template> 및 <xsl:apply-templates> 내에서는 <xsl:with-param> 요소가 허용됩니다.
매개 변수 값은 <xsl:variable> 및 <xsl:param>과 같은 방법으로 지정됩니다.
<xsl:with-param> 요소에서 지정한 값을 계산할 때 사용되는 현재 노드 및 현재 노드 목록은 이 노드가 발생한 <xsl:apply-templates> 또는 <xsl:call-template> 요소에 대해 사용되는 현재 노드 및 노드 목록과 같습니다.
x에 대한 <xsl:param> 요소가 없는 템플릿에 매개 변수 x를 전달하면 오류가 발생하지 않고 이 매개 변수가 무시됩니다.
예제
스타일시트에서 다음 방법을 사용하여 지역화된 메시지 문자열을 호출할 수 있습니다.
해당 언어로 된 메시지가 아래 샘플 XML 파일에 표시된 형식으로 XML 파일 resources/언어 약어.xml에 저장됩니다.
XML 파일(app.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="showlocmsg.xsl" ?>
<showmsg>
<msg23/>
</showmsg>
XML 리소스 파일(resources/en.xml)
<?xml version='1.0'?>
<messages>
<message name="msg23">Error 23: The drive is full.</message>
<message name="msg42">Error 42: The file is not found.</message>
</messages>
XSLT 파일(showlocmsg.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- These 2 elements effectively assign
$messages = resources/en.xml/<messages>,
then $messages is used in the "localized-message" template. -->
<xsl:param name="lang">en</xsl:param>
<xsl:variable name="messages"
select="document(concat('resources/', $lang, '.xml'))/messages"/>
<xsl:template name="msg23" match="msg23">
<xsl:call-template name="localized-message">
<xsl:with-param name="msgcode">msg23</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="localized-message">
<xsl:param name="msgcode"/>
<!-- Show message string. -->
<xsl:message terminate="yes">
<xsl:value-of select="$messages/message[@name=$msgcode]"/>
</xsl:message>
</xsl:template>
</xsl:stylesheet>
출력
다음은 형식이 지정된 출력입니다.
다음은 프로세서 출력입니다.
<?xml version="1.0" encoding="UTF-16"?>