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문서에서 정의한 대로 테이블에 값이 들어가있다.

 

+ Recent posts