XSLT - Auf dem Server
Um XML-Daten für alle Arten von Browsern verfügbar zu machen, können wir das XML-Dokument auf dem SERVER transformieren und es als XHTML an den Browser zurücksenden.
Eine Cross-Browser-Lösung
Im vorherigen Kapitel haben wir erklärt, wie XSLT verwendet werden kann, um ein Dokument im Browser von XML nach XHTML umzuwandeln. Für die Transformation haben wir ein JavaScript und einen XML-Parser verwendet. Dies funktioniert jedoch nicht in einem Browser, der keinen XML-Parser hat.Um XML-Daten für alle Arten von Browsern verfügbar zu machen, können wir das XML-Dokument auf dem Server transformieren und als XHTML an den Browser zurücksenden.
Das ist eine weitere Schönheit von XSLT. Eines der Designziele für XSLT war es, Daten auf einem Server von einem Format in ein anderes umzuwandeln und lesbare Daten an alle Arten von Browsern zurückzugeben.
Die XML-Datei und die XSLT-Datei
Sehen Sie sich das XML-Dokument an, das Sie in den vorherigen Kapiteln gesehen haben:
<?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>
Und das dazugehörige 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>
Beachten Sie, dass die XML-Datei keinen Verweis auf die XSL-Datei hat.
WICHTIG: Der obige Satz weist darauf hin, dass eine XML-Datei mit vielen verschiedenen XSL-Stylesheets transformiert werden kann.
PHP-Code: Wandeln Sie XML auf dem Server in XHTML um
Hier ist der PHP-Quellcode, der benötigt wird, um die XML-Datei auf dem Server in XHTML umzuwandeln:
<?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);
?>
Tipp: Wenn Sie nicht wissen, wie man PHP schreibt, studieren Sie bitte unser PHP-Tutorial .
Sehen Sie, wie es mit PHP funktioniert .
ASP-Code: Wandeln Sie XML auf dem Server in XHTML um
Hier ist der ASP-Quellcode, der benötigt wird, um die XML-Datei auf dem Server in XHTML umzuwandeln:
<%
'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))
%>
Sehen Sie, wie es mit ASP funktioniert .