WEB] XSL

노션으로 옮김·2020년 3월 9일
1

Study

목록 보기
4/33
post-thumbnail

정의

XML 문서를 다른 형식의 문서로 출력시키기 위해서 사용되는 언어.
다음 세 가지로 구성된다.

  1. XSLT : XSL Transformations를 의미하며, XML 문서를 다른 구조의 문서로 변환시키기 위한 언어입니다.
  2. XPath : XML 문서의 특정 요소나 속성에 접근하기 위한 경로를 지정하는 언어입니다.
  3. XSL-FO : XML 데이터를 출력하기 위한 목적으로 설계된 언어입니다.

구조

변환과정

다음은 처리되는 과정의 순서도이다.

예제

먼저, 데이터에 해당하는 data.xml 을 정의한다.

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

다음으로 출력시키길 원하는 형태의 xhtml.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>

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

마지막으로 data.xml에, xhtml.xsl을 연결시켜주기 위한 선언을 삽입한다.

<!-- data.xml -->
...
...
<?xml-stylesheet type="text/xsl" href="xml_xslt_01.xsl"?>

참조

http://tcpschool.com/xml/xml_dom_concept
https://shonm.tistory.com/446

0개의 댓글