XSLT - Op die bediener
Om XML-data aan alle soorte blaaiers beskikbaar te stel, kan ons die XML-dokument op die SERVER transformeer en dit as XHTML na die blaaier terugstuur.
'n Kruisblaaier-oplossing
In die vorige hoofstuk het ons verduidelik hoe XSLT gebruik kan word om 'n dokument van XML na XHTML in die blaaier te transformeer. Ons het 'n JavaScript en 'n XML-ontleder vir die transformasie gebruik. Dit sal egter nie werk in 'n blaaier wat nie 'n XML-ontleder het nie.Om XML-data aan alle soorte blaaiers beskikbaar te stel, kan ons die XML-dokument op die bediener transformeer en as XHTML na die blaaier terugstuur.
Dit is nog 'n skoonheid van XSLT. Een van die ontwerpdoelwitte vir XSLT was om dit moontlik te maak om data van een formaat na 'n ander op 'n bediener te transformeer en leesbare data aan alle soorte blaaiers terug te gee.
Die XML-lêer en die XSLT-lêer
Kyk na die XML-dokument wat jy in die vorige hoofstukke gesien het:
<?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>
En die meegaande XSL-stylblad:
<?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>
Let daarop dat die XML-lêer nie 'n verwysing na die XSL-lêer het nie.
BELANGRIK: Die sin hierbo dui aan dat 'n XML-lêer getransformeer kan word deur baie verskillende XSL-stylblaaie te gebruik.
PHP-kode: Transformeer XML na XHTML op die bediener
Hier is die PHP-bronkode wat nodig is om die XML-lêer na XHTML op die bediener te transformeer:
<?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);
?>
Wenk: As jy nie weet hoe om PHP te skryf nie, bestudeer asseblief ons PHP-tutoriaal .
ASP-kode: Transformeer XML na XHTML op die bediener
Hier is die ASP-bronkode wat nodig is om die XML-lêer na XHTML op die bediener te transformeer:
<%
'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))
%>