본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/xml

XSLT 변환

by 미노드 2023. 3. 7.

XSLT의 변환 과정은 다음과 같이 크게 두 가지 과정으로 이루어집니다.

1. 변환(Transformation) : XML 문서를 다른 구조의 XML 문서로 변환하는 과정입니다.
2. 서식 설정(Formatting) : XML 문서를 특정 데이터 구조의 비 XML 문서로 변환하는 과정입니다.

변환될 데이터를 가지고 있는 XML 문서와 변환에 대한 규칙을 가지고 있는 XSLT 문서만 있으면 변환을 진행할 수 있습니다.
XML 문서를 잘 구성된(well-formed) HTML 문서로 바꾸는 과정을 순서대로 살펴보겠습니다.

예제 xml 코드(data.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<programming_languages>
    <language>
        <name>HTML</name>
        <category>web</category>
        <developer>W3C</developer>
        <version status="working draft">5.1</version>
        <priority rating="1">high</priority>
    </language>
    ...
    <language>
        <name korean="파이썬">Python</name>
        <category>application</category>
        <developer>Python</developer>
        <version status="stable">3.52</version>
        <priority rating="4">middle</priority>
    </language>
</programming_languages>
cs

XSLT문서 작성(xml_xslt_01.xsl)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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>
                <table border="1" style="width: 50%; margin: auto">
                    <tr>
                        <th>이름</th>
                        <th>종류</th>
                        <th>개발사</th>
                        <th>버전</th>
                        <th>중요도</th>
                    </tr>
                    <xsl:for-each select="programming_languages/language">
                        <tr>
                            <td><xsl:value-of select="name"/></td>
                            <td><xsl:value-of select="category"/></td>
                            <td><xsl:value-of select="developer"/></td>
                            <td><xsl:value-of select="version"/></td>
                            <td><xsl:value-of select="priority"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
cs

XML 문서에 XSLT 문서를 연결(xml_xslt_01.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xml_xslt_01.xsl"?>
<programming_languages>
    <language>
        <name>HTML</name>
        <category>web</category>
        <developer>W3C</developer>
        <version status="working draft">5.1</version>
        <priority rating="1">high</priority>
    </language>
    <language>
        <name>CSS</name>
        <category>web</category>
        <developer>W3C</developer>
        <version status="stable">3.0</version>
        <priority rating="3">middle</priority>
    </language>
    <language>
        <name korean="자바">Java</name>
        <category>application</category>
        <developer>Oracle</developer>
        <version status="stable">8.91</version>
        <priority rating="2">high</priority>
    </language>
    <language>
        <name korean="파이썬">Python</name>
        <category>application</category>
        <developer>Python</developer>
        <version status="stable">3.52</version>
        <priority rating="4">middle</priority>
    </language>
</programming_languages>
cs

웹 브라우저에서 XML 문서(xml_xslt_01.xml) 열어보면 다음과 같이 나옴

'IT기술 > xml' 카테고리의 다른 글

xml DOM의 개념  (0) 2023.03.07
XSLT 템플릿 작성 및 적용  (0) 2023.03.07
XSLT  (0) 2023.03.07
XML 문서의 종류  (0) 2023.03.06
XML 네임스페이스(namespace)  (0) 2023.03.06