XSLT - Na serwerze

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>

Zobacz ten plik XML.

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>

Zobacz ten plik XSL.

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!

Zobacz, jak to działa.