XSLT - 서버에서
모든 종류의 브라우저에서 XML 데이터를 사용할 수 있도록 하기 위해 SERVER에서 XML 문서를 변환하고 XHTML로 브라우저에 다시 보낼 수 있습니다.
크로스 브라우저 솔루션
이전 장에서 XSLT를 사용하여 브라우저에서 문서를 XML에서 XHTML로 변환하는 방법을 설명했습니다. 변환을 위해 JavaScript와 XML 파서를 사용했습니다. 그러나 XML 파서가 없는 브라우저에서는 작동하지 않습니다.모든 종류의 브라우저에서 XML 데이터를 사용할 수 있도록 하려면 서버에서 XML 문서를 변환하고 브라우저에 XHTML로 다시 보낼 수 있습니다.
그것이 XSLT의 또 다른 아름다움입니다. XSLT의 설계 목표 중 하나는 서버에서 데이터를 한 형식에서 다른 형식으로 변환하여 모든 종류의 브라우저에 읽을 수 있는 데이터를 반환하는 것이었습니다.
XML 파일과 XSLT 파일
이전 장에서 본 XML 문서를 보십시오.
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
XML 파일 을 봅니다.
그리고 함께 제공되는 XSL 스타일 시트:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
XSL 파일 을 봅니다.
XML 파일에는 XSL 파일에 대한 참조가 없습니다.
중요: 위의 문장은 XML 파일이 다양한 XSL 스타일 시트를 사용하여 변환될 수 있음을 나타냅니다.
PHP 코드: 서버에서 XML을 XHTML로 변환
다음은 서버에서 XML 파일을 XHTML로 변환하는 데 필요한 PHP 소스 코드입니다.
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
//
Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl
rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
팁: PHP를 작성하는 방법을 모른다면 PHP 튜토리얼 을 참조하십시오 .
ASP 코드: 서버에서 XML을 XHTML로 변환
다음은 서버에서 XML 파일을 XHTML로 변환하는 데 필요한 ASP 소스 코드입니다.
<%
'Load XML file
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL file
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>