XSLT - Op de server
Om XML-gegevens beschikbaar te maken voor alle soorten browsers, kunnen we het XML-document op de SERVER transformeren en als XHTML terugsturen naar de browser.
Een oplossing voor meerdere browsers
In het vorige hoofdstuk hebben we uitgelegd hoe XSLT gebruikt kan worden om een document te transformeren van XML naar XHTML in de browser. We gebruikten een JavaScript en een XML-parser voor de transformatie. Dit werkt echter niet in een browser die geen XML-parser heeft.Om XML-gegevens beschikbaar te maken voor alle soorten browsers, kunnen we het XML-document op de server transformeren en terugsturen naar de browser als XHTML.
Dat is nog een schoonheid van XSLT. Een van de ontwerpdoelen van XSLT was om het mogelijk te maken om gegevens van het ene formaat naar het andere op een server te transformeren, zodat leesbare gegevens naar alle soorten browsers worden teruggestuurd.
Het XML-bestand en het XSLT-bestand
Kijk naar het XML-document dat je in de vorige hoofdstukken hebt gezien:
<?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 het bijbehorende XSL-stylesheet:
<?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>
Merk op dat het XML-bestand geen verwijzing naar het XSL-bestand heeft.
BELANGRIJK: De bovenstaande zin geeft aan dat een XML-bestand kan worden getransformeerd met behulp van veel verschillende XSL-stijlbladen.
PHP-code: XML omzetten naar XHTML op de server
Hier is de PHP-broncode die nodig is om het XML-bestand om te zetten naar XHTML op de server:
<?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);
?>
Tip: Als je niet weet hoe je PHP moet schrijven, lees dan onze PHP-tutorial .
ASP-code: XML transformeren naar XHTML op de server
Hier is de ASP-broncode die nodig is om het XML-bestand om te zetten naar XHTML op de server:
<%
'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))
%>
Bekijk hoe het werkt met ASP .