다음을 통해 공유


<xsl:attribute> 요소

특성 노드를 만들어 출력 요소에 첨부합니다.

<xsl:attribute
  name = "attribute-name"
  namespace = "uri-reference">
</xsl:attribute>

특성

  • name
    필수적 요소입니다. 만들려는 특성의 이름입니다. 이 값이 정규화된 이름(QName)인 경우 namespace 특성으로 재정의하지 않으면 접두사에 현재 바인딩되어 있는 네임스페이스에 특성 노드가 생성됩니다. name 특성 값은 특성 값 템플릿으로 해석됩니다. 즉, <xsl:value-of> 요소에서와 같이 중괄호 안의 식은 계산된 후 문자열로 변환됩니다. 그러므로 소스 XML에서 특성 이름을 계산하거나 얻을 수 있습니다.
  • namespace
    생성된 특성의 네임스페이스 URI(Uniform Resource Identifier)입니다. name 특성에 QName이 포함된 경우 여기에 지정된 접두사는 네임스페이스 특성에 지정된 네임스페이스에 바인딩됩니다. 그러면 직렬화할 때 다른 네임스페이스 선언이 추가될 수 있습니다. 이 값은 특성 값 템플릿으로 해석됩니다.

요소 정보

발생 횟수

제한 없음

부모 요소

xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param

자식 요소

xsl:apply-imports, xsl:apply-templates, xsl:call-template, xsl:choose, xsl:copy, xsl:copy-of, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:number, xsl:text, xsl:value-of, xsl:variable

설명

이 요소의 내용은 특성 값을 지정합니다.

<xsl:copy> 요소와 같이 출력을 생성하는 요소 내에 <xsl:attribute> 요소를 배치하면 변환하는 동안 특성을 추가하거나 수정할 수 있습니다. <xsl:attribute> 요소는 <xsl:element>와 함께 사용할 수 있을 뿐 아니라 출력 요소에 직접 사용할 수도 있습니다.

요소에 자식을 추가하기 전에 모든 특성을 적용해야 합니다.

예제

이 간단한 예제에서는 XML 소스에서 값을 가져오는 특성을 생성하며 XML 소스에서 적합한 데이터를 검색하는 XPath 식을 사용하여 <IMG src="value-from-XML-source"/> 형식으로 출력을 생성합니다. 이 경우 적합한 데이터는 "imagenames/imagename"입니다.

XSLT 파일

출력

<IMG src=" imagenames/imagename"/>

<xsl:attribute> 요소는 문서를 변환하기 전에 알려지지 않은 출력 특성을 동적으로 생성하는 데 매우 유용하지만 이미 특성을 알고 있는 경우에는 이 요소를 사용할 필요가 없습니다. 앞의 예제에서 IMG 요소에 src 특성이 포함된다는 것을 이미 알 수 있습니다. 문서를 변환하기 전에 이러한 사항을 알고 있으므로 <xsl:attribute> 요소를 사용할 필요가 없습니다. 다음을 사용하면 변환 구문을 단순화하면서 같은 결과를 얻을 수 있습니다.

<IMG src="{imagenames/imagename}"/>

특성 값 템플릿 대신 <xsl:attribute> 요소를 사용하면 다음을 수행할 수 있습니다.

  • 특성 이름을 계산할 수 있습니다.

  • 특성 생성과 함께 조건부, 템플릿 및 특성 집합을 사용할 수 있습니다.

  • <xsl:copy> 또는 <xsl:element> 요소에 의해 생성된 요소에 특성을 추가할 수 있습니다.

이 단원에는 다음 전체 예제가 포함되어 있습니다.