..

Search

13) 템플릿 작성 및 적용

템플릿 작성 및 적용


루트 요소

XSLT 문서의 루트(root) 요소는 <xsl:stylesheet>요소나 <xsl:transform>요소로 표현할 수 있습니다.

또한, 루트 요소의 시작 태그에는 W3C XSLT 네임스페이스를 반드시 같이 명시해줘야 합니다.

예제 1

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

...

</xsl:stylesheet>

 

예제 2

<?xml version="1.0" encoding="UTF-8"?>

<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

...

</xsl:transform>

 

위의 두 예제는 정확히 같은 동작을 수행하기 때문에 어느 쪽을 사용해도 같은 결과를 얻을 수 있습니다.


템플릿 작성

XSLT 프로세서가 XSLT 문서에서 가장 먼저 찾는 요소는 바로 템플릿 요소입니다.

 

템플릿(template)은 특정 노드가 일치할 때 해당 노드에 적용할 규칙들을 포함하고 있습니다.

이러한 템플릿은 루트 노드에 포함된 콘텐츠를 어떻게 처리하고 변환할 것인지를 나타냅니다.

 

XSLT 문서에서 템플릿(template)은 <xsl:template>요소로 표현할 수 있습니다.

match 속성에는 속성값으로 템플릿과 연결할 XML 요소의 범위를 나타내는 XPath 표현식을 명시합니다.

 

다음 예제는 XML 문서 전체를 템플릿과 연결해주는 예제입니다.

예제

<xsl:template match="/">

 

노드(node)에 대한 더 자세한 사항은 XML 노드 수업에서 확인할 수 있습니다.

 

XML 노드 수업 확인 =>


템플릿 적용

<xsl:apply-template>요소는 특정 노드나 특정 노드의 자식 노드에 템플릿을 적용할 때 사용합니다.

 

다음 예제는 <name>요소와 <category>요소에만 각각 별도의 템플릿을 적용하는 예제입니다.

xml_xslt_02.xsl

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="html"/>

 

    <xsl:template match="/">

        <html>

            <body>

                <h2 style="text-align:center">프로그래밍 언어</h2>

                <xsl:apply-templates/>

            </body>

        </html>

    </xsl:template>

 

    <xsl:template match="language">

        <p>

            <xsl:apply-templates select="name"/>

            <xsl:apply-templates select="category"/>

        </p>

    </xsl:template>

 

    <xsl:template match="name">

        언어 이름 : <strong>

        <xsl:value-of select="."/></strong><br/>

    </xsl:template>

 

    <xsl:template match="category">

        카테고리 : <span style="color: green">

        <xsl:value-of select="."/></span><br/>

    </xsl:template>

 

</xsl:stylesheet>

 

이번 수업의 예제에서 사용되는 xml_xslt_02.xml 파일의 코드는 다음과 같습니다.

 

다음은 위의 xml_xslt_02.xml 파일을 실행한 결과입니다.


연습문제