XSLT - Na serwerze
- Poprzednia strona XSLT na kliencie
- Następna strona Edycja XML z XSLT
Ponieważ nie wszystkie przeglądarki wspierają XSLT, innym rozwiązaniem jest wykonanie konwersji XML na XHTML na serwerze.
Rozwiązanie wieloprzeglądarkowe
W poprzednich rozdziałach wyjaśniliśmy, jak używać XSLT w przeglądarce do konwersji XML na XHTML. Stworzyliśmy skrypt JavaScript do konwersji za pomocą analizatora XML. Rozwiązanie JavaScript nie działa w przeglądarkach bez analizatora XML. Aby dane XML były dostępne dla wszystkich typów przeglądarek, musimy przekształcić dokument XML na serwerze i wysłać go do przeglądarki jako XHMTL.
To jest kolejna zaleta XSLT. Jednym z celów projektowania XSLT jest umożliwienie przekształcania danych z jednego formatu na inny na serwerze i zwracanie czytelnego danych dla wszystkich typów przeglądarek.
Pliki XML i XSL
Proszę spojrzeć na ten XML dokument, który został już przedstawiony w poprzednich rozdziałach:
<?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>
i załączonym szablonem XSL:
<?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>Moja kolekcja płyt CD</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Tytuł</th> <th align="left">Artysta</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>
Proszę zauważyć, że ten plik XML nie zawiera odniesień do pliku XSL.
Ważne informacje:To zdanie wskazuje, że plik XML może być przetworzony za pomocą wielu różnych szablonów XSL do konwersji.
Konwersja XML na XHTML na serwerze
To jest kod źródłowy konwersji pliku XML na XHTML na serwerze:
<% Ładuj XML ustaw 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)) %>
Wskazówka:Jeśli nie wiesz, jak pisać ASP, możesz nauczyć się z naszejTutorial ASP>
Pierwszy kod tworzy instancję parsera XML Microsoft, a następnie ładuje plik XML do pamięci. Drugi kod tworzy inną instancję parsera i ładuje plik XSL do pamięci. Ostatni wiersz kodu przekształca dokument XML za pomocą dokumentu XSL i wysyła wynik jako XHTML do Twojej przeglądarki. Zadanie zakończone!
- Poprzednia strona XSLT na kliencie
- Następna strona Edycja XML z XSLT