XSLT - Sul server

Poiché non tutti i browser supportano XSLT, un'altra soluzione è completare la conversione da XML a XHTML sul server.

Soluzione multi-browswer

Nei capitoli precedenti, abbiamo spiegato come utilizzare XSLT nei browser per completare la conversione da XML a XHTML. Abbiamo creato un pezzo di JavaScript che utilizza un parser XML per la conversione. La soluzione JavaScript non funziona nei browser senza parser XML. Per rendere i dati XML compatibili con tutti i tipi di browser, dobbiamo convertire il documento XML sul server e inviarlo al browser come XHMTL.

Questo è un altro vantaggio di XSLT. Uno degli obiettivi di progettazione di XSLT è rendere possibile la conversione dei dati da un formato a un altro sul server e restituire dati leggibili a tutti i tipi di browser.

File XML e file XSL

Vedi questo documento XML che è stato mostrato nei capitoli precedenti:

<?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>

Visualizza questo file XML.

ecco anche lo stile XSL allegato:

<?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>Mia Collezione di CD</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Titolo</th> 
        <th align="left">Artista</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>

Visualizza questo file XSL.

Si prega di notare che questo file XML non contiene riferimenti al file XSL.

Punti Importanti:La frase sopra indica che il file XML può essere convertito utilizzando più fogli di stile XSL diversi.

Convertire XML in XHTML sul server

Questo è il codice sorgente per convertire un file XML in XHTML sul server:

<%
'Carica XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Carica XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transforma file
Response.Write(xml.transformNode(xsl))
%>

Suggerimento:Se non si conosce come scrivere ASP, è possibile imparare il nostroASP Tutorial

Il primo codice crea un'istanza del parser XML di Microsoft e carica il file XML nella memoria. Il secondo codice crea un'altra istanza del parser e carica il file XSL nella memoria. L'ultima riga di codice trasforma il documento XML utilizzando il documento XSL e invia il risultato come XHTML al browser. L'operazione è completata!

Vediamo come funziona.