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 udføre konverteringen fra XML til XHTML på serveren.
Krydsbrowserløsning
I de 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 af de mange fordele ved XSLT. En af XSLT's designmål 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 præsenteret i de tidligere kapitler:
<?xml version="1.0" encoding="ISO-8859-1"?> <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>
og tilhørende XSL-stilskabeloner:
<?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, at denne XML-fil ikke indeholder referencer til XSL-filer.
Vigtig information:Denne setningen indikerer at XML-filen kan konverteres ved hjælp af flere forskellige XSL-stilskabeloner.
Konverter XML til XHTML på serveren
Dette er koden til å 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 file Response.Write(xml.transformNode(xsl)) %>
Tip:Hvis du ikke kender til at skrive ASP, kan du lære voresASP undervisning》。
Første kode linje opretter en instans af Microsofts XML parser, og indlæser derefter XML-filen i hukommelsen. Anden kode linje opretter en anden instans af parseren, og indlæser derefter denne XSL-fil 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