XSLT - På servern
- Föregående sida XSLT på klienten
- Nästa sida XSLT Redigera XML
Eftersom inte alla webbläsare stöder XSLT, ett annat alternativ är att slutföra konverteringen från XML till XHTML på servern.
Korswebbläsarlösning
I föregående kapitel har vi förklarat hur man använder XSLT för att konvertera XML till XHTML i webbläsaren. 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. Ett av målen med XSLT:s design ä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-fil och XSL-fil
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> <bolag>Columbia</bolag> <pris>10.90</pris> <år>1985</år> </cd> . . . </catalog>
och tillhörande XSL-stylesheets:
<?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>
Observera att denna XML-fil innehåller ingen referens till XSL-filen.
Viktigt:Detta uttryck innebär att XML-filen kan konverteras till XHTML med flera olika XSL-stylesheets.
Konvertera XML till XHTML på servern
Detta är källkoden för att konvertera XML-filen till XHTML på servern:
<% 'Ladda 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år:ASP Tutorial>
Det första kodsegmentet skapar ett exempel på Microsofts XML-parser, läser sedan in XML-filen i minnet. Det andra kodsegmentet skapar en annan instans av paret och läser sedan in XSL-filen i minnet. Det sista raden använder XSL-dokumentet för att konvertera XML-dokumentet och skickar resultatet som XHTML till din webbläsare. Uppgiften är klar!
- Föregående sida XSLT på klienten
- Nästa sida XSLT Redigera XML