프로그래밍/.Net
[본문스크랩] .NET에서 XML활용 DOM객체 활용-6 XSLT프로세싱
강태공97
2014. 1. 17. 21:04
XSLT 프로세싱
용어정리
XSLT 프로세싱 : XML문서를 XSL문서와 결합하여 다른 구조의 XML문서로 변환하는 것
Result Tree : XML변환(Transformation) 의 결과물은 파일 형태의 문서가 아니라 메모리 상에서 트리를 이루는 DOM객체를
Result Tree라 한다.
XslCompiledTransform 클래스 : XSLT 변환을 수행하는 클래스 Transform() 메서드 사용. |
예제)
xml문서의 내용을 토대로 XSLT프로세싱하여 htm파일로 만들기
xslt문서
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" > <!--시작 템플릿 룰 선언--> <xsl:template match="/"> <html> <body> <h2>책목록</h2> <table border="1" cellspacing="0" width="80%"> <tr bgcolor="yellow"> <th>제 목</th> <th>저 자</th> <th>가격</th> </tr> <xsl:apply-templates select="//book"/> </table> </body> </html> </xsl:template> <xsl:template match="book"> <tr align="center"> <td> <xsl:value-of select="./title"/> </td> <td> <xsl:value-of select="./author"/> </td> <td> <xsl:value-of select="./price"/> </td> </tr> </xsl:template> </xsl:stylesheet> |
코딩
예제에 쓰일 xml파일은 늘쓰던 booklist.xml파일이다~ 이전 정리에 여러번 게재했으니 궁금하면 이전 정리를 보면 되겠다.
private void btnXSLT_Click(object sender, EventArgs e) {
XmlReaderSettings settings=new XmlReaderSettings(); settings.DtdProcessing=DtdProcessing.Parse; XmlReader reader = XmlReader.Create(pathURI,settings); // 2)htm문서로 저장할 XmlWirter객체 생성 string path = @"c:\result.htm"; XmlWriter writer = XmlWriter.Create(path); // 3) XML변환기 // (XslCompiledTransform 클래스사용) XslCompiledTransform transformer = new XslCompiledTransform();//System.Xml.Xsl // 변환기가 변환할 xslt 문서지정 transformer .Load(@"..\..\files\booklist.xslt"); // 변환하는 메서드 호출 transformer.Transform(reader , writer);
System.Diagnostics.Process.Start(@"c:\result.htm");
} |
XslCompiledTransform클래스 객체를 생성 하여 그 객체명을 transformer 로 하였다.
로 사용될 xslt을 transformer 객체의 Load메서드를 이용해서 셋팅시켜주고 Transform메서드를 이용하여 reader 에 있는 XML 노드 첫번째부터 읽어 XSLT형식으로 변환하여 writer로 파일을 쓴다. |
결과출력

htm파일로 만들어졌으며 xslt문서에서 정의한 대로 테이블에 값이 들어가있다.