XSLT - Auf der Serverseite
Da nicht alle Browser XSLT unterstützen, besteht eine andere Lösung darin, die Konvertierung von XML in XHTML auf dem Server durchzuführen.
Browserübergreifende Lösung
Im vorherigen Kapitel haben wir erklärt, wie man XSLT im Browser verwendet, um XML in XHTML zu konvertieren. Wir haben ein JavaScript erstellt, das einen XML-Parser verwendet, um die Konvertierung durchzuführen. Die JavaScript-Lösung funktioniert nicht in Browsern ohne XML-Parser.Um XML-Daten in jedem Browsertyp nutzbar zu machen, müssen wir das XML-Dokument auf dem Server konvertieren und es dann als XHTML an den Browser zurücksenden.
Dies ist ein weiterer Vorteil von XSLT. Eines der Entwurfsziele von XSLT war es, die Konvertierung von Daten von einem Format in ein anderes auf dem Server zu ermöglichen und lesbare Daten an alle Browsertypen zurückzugeben.
XML-Datei und XSLT-Datei
Betrachten Sie dieses XML-Dokument, das in einem vorherigen Kapitel gezeigt wurde:
<?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 zugehö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 diese XML-Datei keinen Verweis auf die XSL-Datei enthält.
Wichtig:Der obige Satz bedeutet, dass die XML-Datei mit mehreren verschiedenen XSL-Stylesheets konvertiert werden kann.
XML auf dem Server in XHTML konvertieren
Dies ist der Quellcode zum Konvertieren einer XML-Datei in XHTML auf dem Server:
Konvertieren mit PHP-Code:
<?php
// 载入 XML 文件
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// 载入 XSL 文件
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
// 设置转换
$proc = new XSLTProcessor;
// 添加 xsl 规则
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
Tipp:Wenn Sie nicht wissen, wie man PHP schreibt, können Sie unserPHP-Tutorial studieren。
Konvertieren mit ASP-Code:
<%
'载入 XML 文件
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'载入 XSL 文件
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'转换文件
Response.Write(xml.transformNode(xsl))
%>
Tipp:Wenn Sie nicht wissen, wie man ASP schreibt, können Sie unserASP-Tutorial studieren。
Das erste Codefragment erstellt eine Instanz des Microsoft XML-Parsers (XMLDOM) und lädt die XML-Datei in den Speicher. Das zweite Codefragment erstellt eine weitere Instanz des Parsers und lädt die XSL-Datei in den Speicher. Die letzte Codezeile verwendet das XSL-Dokument, um das XML-Dokument zu konvertieren, und sendet das Ergebnis als XHTML an Ihren Browser. Großartig!
。
Andere Erweiterungen