XSLT - På serversidan

Eftersom inte alla webbläsare stöder XSLT, är en annan lösning att genomföra konverteringen från XML till XHTML på servern.

Korsplattformslösning

I föregående kapitel har vi förklarat hur man använder XSLT för att konvertera XML till XHTML i webbläsare. Vi skapade ett JavaScript som använder XML-parser för att genomföra konverteringen. JavaScript-lösningen fungerar inte i webbläsare utan XML-parser. För att XML-data ska kunna användas i alla typer av webbläsare måste vi konvertera XML-dokumentet på servern och sedan skicka det som XHMTL till webbläsaren.

Detta är en annan fördel med XSLT. En av målen med utformningen av XSLT är att göra det möjligt att konvertera data från ett format till ett annat på servern och returnera läsbara data till alla typer av webbläsare.

XML-filer och XSL-filer

Se denna XML-dokument som redan har visats i föregående kapitel:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <titel>Empire Burlesque</titel>
    <artist>Bob Dylan</artist>
    <land>USA</land>
    <företag>Columbia</företag>
    <pris>10.90</pris>
    <år>1985</år>
  </cd>
.
.
.
</catalog>

Se denna XML-fil.

och följande XSL-stilark:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:template match="/">
  <html>
  <body>
    <h2>Min CD-samling</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Titel</th> 
        <th 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>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Se denna XSL-fil.

Observera att denna XML-fil inte innehåller referenser till XSL-filer.

Viktigt:Ovanstående mening indikerar att en XML-fil kan konverteras till XHTML med flera olika XSL-stylets.

Konvertera XML till XHTML på servern

Detta är källkoden för att konvertera XML-filer till XHTML på servern:

<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>

Tips:Om du inte känner till hur man skriver ASP, kan du läsa vårASP Tutorial

Det första koden skapar en instans av Microsofts XML-parser och läser sedan in XML-filen i minnet. Det andra koden skapar en annan instans av parsern och läser sedan in XSL-filen i minnet. Sista raden använder XSL-dokumentet för att konvertera XML-dokumentet och skickar resultaten som XHTML till din webbläsare. Uppgiften är klar!

Se hur det fungerar.