XSLT - På klienten
- Forrige side XSLT Apply
- Næste side XSLT på serveren
Hvis din browser understøtter XSLT, kan det bruges til at konvertere dokumentet til XHTML.
JavaScript-løsning
I de tidligere kapitler har vi forklaret, hvordan man bruger XSLT til at konvertere en XML-dokument til XHTML. Vi har gjort dette ved at tilføje XSL-stilskema til XML-filen og udføre konverteringen gennem browseren.
Selvom denne metode fungerer godt, er det ikke altid tilfredsstillende at inkludere stilskemaer i XML-filer (for eksempel fungerer denne metode ikke i browsere, der ikke kan genkende XSLT).
En mere generel metode er at bruge JavaScript til at udføre konverteringen.
Ved hjælp af JavaScript, kan vi:
- Udfør browserkonfirmationstest
- Brug forskellige stilskemaer baseret på browserens og brugerens behov
Dette er charmen ved XSLT! En af designmålene for XSLT er at gøre det muligt at konvertere fra en format til en anden, samtidig med at det understøtter forskellige typer browsere og forskellige brugerbehov.
XSLT-konvertering på klientens side vil sikkert blive en af de vigtigste opgaver, som fremtidige browsere skal udføre, og vi vil også se dens vækst i specifikke browsermarkeder (blindskrift, netværksprintere, lydudstyr, osv.).
XML-filer og XSL-filer
Se denne XML-dokument, som allerede er vist i de 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 tilhørende XSL-stilskema:
<?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 en reference til XSL-filen.
Vigtigt:Dette betyder, at XML-filen kan konverteres til XHTML ved hjælp af flere forskellige XSL-stilskemaer.
Konverter XML til XHTML i browseren
Dette er koden, der bruges til at konvertere XML-filen til XHTML på klienten:
<html> <body> <script type="text/javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cdcatalog.xml") // Load XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("cdcatalog.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html>
VedHvis du ikke kender til at skrive JavaScript, så lær voresJavaScript tutorial》。
Det første stykket kode opretter en instans af Microsofts XML-parser og indlæser XML-filen i hukommelsen. Det andet stykke kode opretter en anden instans af parseren og indlæser denne XSL-fil i hukommelsen. Det sidste linje kode bruger XSL-dokumentet til at konvertere XML-dokumentet og viser resultaterne som XHTML i browseren. Opgaven er fuldført!
- Forrige side XSLT Apply
- Næste side XSLT på serveren