Share via


<xsl:with-param> 요소

매개 변수를 템플릿에 전달합니다.

<xsl:with-param
  name = QName
  select = Expression
</xsl:with-param>

특성

  • name
    필수 요소. 매개 변수의 정규화된 이름(XSLT)입니다.

  • select
    현재 컨텍스트와 일치 여부를 확인할 식(XSLT)입니다. 기본값은 없습니다. 내용이 없을 경우 빈 문자열이 생성됩니다.

요소 정보

발생 횟수

제한 없음

부모 요소

xsl:apply-templates, xsl:call-template

자식 요소

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"?>

참고 항목

참조

<xsl:call-template> 요소

<xsl:variable> 요소

<xsl:param> 요소

<xsl:template> 요소