<xsl:param> 요소
<xsl:stylesheet>
요소나 <xsl:template>
요소 내에서 사용할 명명된 매개 변수를 선언합니다. 기본값 사양을 사용할 수 있습니다.
<xsl:param
name = QName
select = Expression
</xsl:param>
특성
- name
필수적 요소입니다. 매개 변수의 정규화된 이름을 지정합니다.
- select
특성 값은 식이며 변수 값은 식 계산 결과로 나타나는 개체입니다. 이 특성을 지정할 경우<xsl:param>
요소는 비어 있어야 합니다.
요소 정보
발생 횟수 |
제한 없음 |
부모 요소 |
|
자식 요소 |
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, 출력 요소 |
설명
<xsl:param>
요소에 지정된 값은 기본 바인딩 값입니다. <xsl:param>
이 포함된 템플릿 또는 스타일시트를 호출하면 기본값 대신 사용할 매개 변수가 전달됩니다.
<xsl:param>
요소를 <xsl:template>
요소의 직계 자식으로 선언해야 합니다. 직계 자식으로 선언하지 않으면 <xsl:param>
요소 값에 액세스할 수 없으며 오류가 발생합니다. 예를 들면 다음과 같습니다.
앞의 예제에서 <xsl:template>
요소의 유일한 직계 자식은 <strong>
요소입니다. 이 자체만으로는 파서에서 <xsl:param>
요소 값을 올바르게 계산할 수 없으므로 다음 오류가 발생합니다.
참고: |
---|
여기서는 키워드 xsl:param을 사용할 수 없습니다. |
<xsl:template>
요소의 컨텍스트 내에서 계산할 수 있도록 이 요소를 올바르게 배치하는 방법은 다음과 같습니다.
<xsl:template name="getcount">
<xsl:param name="counted">
<xsl:value-of select="count(//book)"/>
</xsl:param>
<xsl:element name="strong">
Total Book Count: <xsl:value-of select="$counted"/>
</xsl:element>
매개 변수 값은 식에서 반환할 수 있는 모든 형식의 개체일 수 있습니다. <xsl:param>
요소는 다음 세 가지 대체 방법으로 변수 값을 지정할 수 있습니다.
요소에
select
특성이 있을 경우 특성 값은 식이어야 하며 매개 변수 값은 이 식을 계산한 결과로 나타나는 개체입니다. 이 경우 요소의 내용은 비어 있어야 합니다.요소에
select
특성이 없고 하나 이상의 자식 노드와 같이 비어 있지 않은 내용이 있을 경우 이 내용은 값을 지정합니다. 내용은 매개 변수 값을 부여하기 위해 인스턴스화된 템플릿입니다. 값은 템플릿을 인스턴스화하여 생성된 노드의 시퀀스를 자식으로 보유하고 있는 단일 루트 노드만 포함하는 노드 집합과 같은 결과 트리 단편입니다. 결과 트리 단편에서 노드의 기본 URI는 요소의 기본 URI입니다.템플릿을 인스턴스화하여 생성된 노드 시퀀스의 멤버가 특성 노드 또는 네임스페이스 노드인 경우 루트 노드에는 자식으로 특성 노드나 네임스페이스 노드가 있을 수 없기 때문에 오류가 발생합니다.
내용이 비어 있고
select
특성이 없으면 매개 변수 값은 빈 문자열입니다. 그러므로<xsl:param name="x"/>
은 다음과 같습니다.
<xsl:param name="x" select="''"/>
매개 변수를 사용하여 위치를 기준으로 노드를 선택할 경우 다음을 수행하지 않도록 주의하십시오.
<xsl:param name="n">2</xsl:param> ... <xsl:value-of select="item[$n]"/>
여기서 변수 "n"은 숫자가 아니라 결과 트리 단편에 바인딩되기 때문에 첫 번째 항목 요소의 값을 출력합니다. 대신 다음 중 하나를 수행합니다.
<xsl:param name="n" select="2"/> ... <xsl:value-of select="item[$n]"/>
또는
<xsl:param name="n">2</xsl:param> ... <xsl:value-of select="item[number($n)]"/>
다음 방법을 사용하면 빈 노드 집합을 매개 변수의 기본값으로 쉽게 지정할 수 있습니다.
<xsl:param name="x" select="/.."/>
예제
이 예제에서는 숫자 형식을 제어할 수 있는 인수를 사용하는 "numbered-block"에 대해 명명된 템플릿을 정의합니다.
XML 파일(catmat.xml)
XSLT 파일(paramelem.xsl)
출력
다음은 형식이 지정된 출력입니다.
1. the 2. cat a. sat b. on c. the 3. mat
다음은 쉽게 구별할 수 있도록 공백을 추가한 프로세서 출력입니다.
<?xml version="1.0" encoding="UTF-16"?>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">1. the</fo:block>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">2. cat</fo:block>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">a. sat</fo:block>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">b. on</fo:block>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">c. the</fo:block>
<br xmlns:fo="http://www.w3.org/1999/XSL/Format" />
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">3. mat</fo:block>
참고 항목
참조
<xsl:with-param> 요소
<xsl:variable> 요소
<xsl:call-template> 요소