XSLT - Client

Se il tuo browser supporta l'XSLT, può essere utilizzato per convertire i documenti in XHTML.

Soluzione JavaScript

Nei capitoli precedenti, abbiamo spiegato come utilizzare l'XSLT per convertire un documento XML in XHTML. Abbiamo completato questo lavoro aggiungendo fogli di stile XSL ai file XML e completando la conversione tramite il browser.

Anche se questo metodo funziona bene, includere riferimenti ai fogli di stile nei file XML non è sempre soddisfacenti (ad esempio, in browser che non riconoscono l'XSLT, questo metodo non funziona).

Un metodo più generale è utilizzare JavaScript per completare la conversione.

Utilizzando JavaScript, possiamo:

  • Eseguire test di conferma del browser
  • Usare diversi fogli di stile in base alle esigenze del browser e degli utenti

Ecco il fascino dell'XSLT! Uno degli obiettivi di progettazione dell'XSLT è quello di rendere possibile la conversione da un formato a un altro, supportando diversi tipi di browser e diverse esigenze degli utenti.

La trasformazione XSLT su browser端的任务一定会成为未来浏览器执行的主要任务之一,同时我们也会看到其在特定浏览器市场的增长(盲文、网络打印机,听觉设备,等等)。

File XML e file XSL

Ecco il 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.

e 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 raccolta di CD</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>

Visualizza questo file XSL.

Attenzione, questo file XML non contiene riferimenti ai file XSL.

Cosa sapere:Questo significa che il file XML può essere convertito utilizzando più fogli di stile XSL diversi.

Convertire XML in XHTML nel browser

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

<html>
<body>
<script type="text/javascript">
// Carica XML 
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Carica XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

Suggerimento:Se non conosci come scrivere JavaScript, impara il nostro:Tutorial JavaScript>

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 visualizza i risultati come XHTML nel browser. L'operazione è completata!

Vediamo come funziona in IE.