- Learn
- Guida XSLT
- Inclusione di più documenti XSLT
Inclusione di più documenti XSLT
- di Enrico Lai
Un altro aspetto molto importante nella programmazione XSLT è la possibilità di includere più documenti XSLT all’interno di un altro documento XSLT. Il processo di inclusione risulta molto utile ovviamente nella realizzazione di siti web in modo da poter frammentare il più possibile la struttura delle pagine e poter modificare un solo documento anzichè tutti i files!
L’inclusione avviene attraverso l’elemento <xsl:include href=”file.xslt”/>
Per capire meglio l’utilizzo dei templates riprendiamo l’esempio 20 e vediamo come possiamo riscrivere il codice XSLT utilizzando la tecnica degli include per ottenere il medesimo documento HTML in output.
Consideriamo il nostro layout grafico e vediamo di capire come possiamo frammentarlo. La nostra tabella HTML è formata da delle celle ciascuna delle quali contiene la foto della copertina del CD con sotto il nome dell’artista e il titolo dell’album.
Possiamo quindi mettere in un documento XSLT solo il codice relativo alla creazione della cella. Nel documento che invece richiama il documento da includere lasciamo il restante codice che ad esempio crea la tabella e dispone le celle su tre colonne. Così facendo possiamo definire un altro documento XSLT che magari dispone le celle in modo diverso ma che richiama e include sempre lo stesso documento XSLT.
Esempio 21.
Codice XSLT utilizzato dal documento che richiama un include( listacd_es21.xslt ):
<?xml version=”1.0″ encoding=”UTF-8″?> <!– Prologo XML –>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:template match=”/”>
<html>
<table cellpadding=”1″ cellspacing=”2″ width=”390″ align=”center” bgcolor=”#000000″>
<tr>
<xsl:for-each select=”listacd/artista/albums/album”>
<xsl:call-template name=”album”/> <!– template definito nel file che viene incluso include21.xslt–>
<xsl:if test=”position() mod 3 = 0″>
<!– Blocco CDATA assieme a codice Javascript –>
<script>
<![CDATA[document.write(“</tr><tr>”);]]>
</script>
<!– FINE Blocco CDATA assieme a codice Javascript –>
</xsl:if>
</xsl:for-each>
</tr>
</table>
</html>
</xsl:template>
<xsl:include href=”include21.xslt”/>
</xsl:stylesheet>
Vediamo il codice XSLT utilizzato dal documento che viene incluso ( include21.xslt ):
<?xml version=”1.0″ encoding=”UTF-8″?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:template name=”album”>
<xsl:variable name=”percorso”>img/</xsl:variable>
<td colspan=”2″ width=”130″ bgcolor=”#fff3ff” align=”center”>
<img src=”{$percorso}{img}”/><br/>
<b><xsl:value-of select=”../../@nome”/></b><br/>
<xsl:value-of select=”titolo”/>
</td>
</xsl:template>
</xsl:stylesheet>
Risultato in Output della trasformazione (esempio 21). Il codice HTML in output ovviamente è identico a quello ottenuto nell’esempio 20!
Clicca qui per vedere il risultato della trasformazione sul browser.
Se vuoi aggiornamenti su Inclusione di più documenti XSLT inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Francesco Baldassarri, inizare con Galileo
Parliamo di Arduino/Galileo come board completa per realizzare progetti completamente compatibili con le board più comuni, con la marcia in […]