XSLT - På serversidan
- Föregående sida XSLT på klientsidan
- Nästa sida XSLT redigera XML
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>
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>
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!
- Föregående sida XSLT på klientsidan
- Nästa sida XSLT redigera XML