오후 1:20 2000-04-08
조경민 XSLT 스펙 정리
========================================================
출처 : http://www.w3.org/TR/xslt

Abstract

XSLT는 XML 문서를 다른 XML문서로 변환하는 언어이다.
XSLT는 XML포맷 스펙을 따르는 XSL의 일부로 사용되기
위해서 디자인되었다.

XSLT는 또한 XSL과 독립적으로 사용되기 위해서 디자인될수
있지만, XSLT는 완전히 다른 목적의 XML 변환 언어로 사용
되지는 않는다. 그보다는 XSL의 일부로 필요한 변환을 주는
것이 주요 목적이 된다.

Status of this document
생략

1. Instoduction
XSLT 변환은 well-formed XML

--------------------------------------------------------------

베이직 실전

str = xmldoc.transformNode(xsldoc)
이렇게 하면 현재 xmldoc 문서에 xsldoc을 적용 변환시켜
그 결과를 string으로 반환하는 함수이다.


Call xmldoc.transformNodeToObject(xsldoc, xmloutdoc)
이렇게 하면 현재 xmldoc+xsldoc -> xmloutdoc 으로 변환
해준다.
xmloutdoc.save "out.xml" 이렇게 하면 결과 저장이 된다.

다음과 같이 짜본다.


Option Explicit

Private Sub Command1_Click()

  ' load data
  Dim xmldoc As Object
  Dim xsldoc As Object
  Dim xmloutdoc As Object
  Dim str As String
  
  Set xmldoc = CreateObject("Microsoft.XMLDOM")
  xmldoc.async = False
  xmldoc.Load ("c:\test.xml")
  
  
  If xmldoc.parseError.reason <> "" Then ' Display errors is any
      MsgBox "XML Parser Error: " & xmldoc.parseError.reason & Chr$(13) & "Line: " & xmldoc.parseError.Line _
      & Chr$(13) & "Line Pos: " & xmldoc.parseError.linepos _
      & Chr$(13) & "URL: " & xmldoc.parseError.URL _
      & Chr$(13) & "File Pos: " & xmldoc.parseError.filepos
  
  End If

  ' load style sheet
  Set xsldoc = CreateObject("Microsoft.XMLDOM")
  xsldoc.async = False
  xsldoc.Load ("c:\testa.xsl")
  
  If xsldoc.parseError.reason <> "" Then ' Display errors is any
      MsgBox "XSL Parser Error: " & xsldoc.parseError.reason & Chr$(13) & "Line: " & xsldoc.parseError.Line _
      & Chr$(13) & "Line Pos: " & xmldoc.parseError.linepos _
      & Chr$(13) & "URL: " & xsldoc.parseError.URL _
      & Chr$(13) & "File Pos: " & xsldoc.parseError.filepos
  
  End If
  
  
  ' set up the resulting document
  Set xmloutdoc = CreateObject("Microsoft.XMLDOM")
  xmloutdoc.async = False
  xmloutdoc.validateOnParse = True

  ' parse results into a result DOM Document
  
  str = xmldoc.transformNode(xsldoc)
  
  Call xmldoc.transformNodeToObject(xsldoc, xmloutdoc)
  MsgBox str
  xsldoc.save ("outdoc.xml")
End Sub


...................test.xml........................
<?xml version="1.0"?>

<profile>
        <name>
        JoKyungMin
        </name>
        <age>
        23
        </age>
</profile>


..................testa.xsl..............................
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:template match="*">
                <xsl:copy>
                <xsl:apply-templates/>
                </xsl:copy>
        </xsl:template>

        <xsl:template match="name">
                <NICKNAME>
                <xsl:apply-templates/>
                </NICKNAME>
        </xsl:template>
        

</xsl:stylesheet>

다음은 변환된 XML 문서이다.

..................outdoc.xml..................
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:template match="*">
                <xsl:copy>
                        <xsl:apply-templates/>
                </xsl:copy>
        </xsl:template>
        <xsl:template match="name">
                <NICKNAME>
                        <xsl:apply-templates/>
                </NICKNAME>
        </xsl:template>
</xsl:stylesheet>

'KB > 기타' 카테고리의 다른 글

XML_XSL_CSS  (0) 2004.03.19
XML Link 약간;  (0) 2004.03.19
[java] jar 패키지 만들기  (0) 2004.03.19
MySQL.doc  (0) 2004.03.19
MyODBC 설치하기  (0) 2004.03.19

+ Recent posts