XSLT - På serveren
- Forrige side XSLT på klienten
- Næste side XSLT rediger XML
Da ikke alle browsere understøtter XSLT, er en anden løsning at fuldføre konverteringen fra XML til XHTML på serveren.
Krydsbrowserløsning
I tidligere kapitler har vi forklaret, hvordan man bruger XSLT til at konvertere XML til XHTML i en browser. Vi har oprettet et JavaScript, der bruger en XML-parser til konvertering. JavaScript-løsningen virker ikke på browsere uden en XML-parser. For at XML-data skal kunne bruges i alle typer browsere, skal vi konvertere XML-dokumentet på serveren og sende det som XHMTL til browseren.
Dette er en anden fordel ved XSLT. En af designmålene for XSLT er at gøre det muligt at konvertere data fra en format til en anden på serveren og returnere læsbare data til alle typer browsere.
XML-filer og XSL-filer
Se denne XML-dokument, som allerede er vist i tidligere kapitler:
<?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd> <titel>Empire Burlesque</titel> <artist>Bob Dylan</artist> <land>USA</land> <firma>Columbia</firma> <pris>10.90</pris> <år>1985</år> </cd> . . . </catalog>
og de tilhørende 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">Title</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>
Bemærk venligst, at denne XML-fil ikke indeholder referencer til XSL-filen.
Vigtige oplysninger:Dette sætning indikerer, at XML-filen kan konverteres ved hjælp af flere forskellige XSL-stilark.
Serverens konvertering af XML til XHTML
Dette er koden til at konvertere XML-filen til XHTML på serveren:
<% 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 fil Response.Write(xml.transformNode(xsl)) %>
Bemærk:Hvis du ikke kender til, hvordan man skriver ASP, kan du lære voresASP 教程》
Første kode linje opretter en instans af Microsofts XML parser, og læser derefter XML-filen ind i hukommelsen. Anden kode linje opretter en anden instans af parseren, og læser derefter denne XSL-fil ind i hukommelsen. Sidste linje bruger XSL-dokumentet til at konvertere XML-dokumentet, og sender resultaterne som XHTML til din browser. Opgaven er færdig!
- Forrige side XSLT på klienten
- Næste side XSLT rediger XML