Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'utilizzo dei modelli (Templates)

Esempi pratici di utilizzo dei modelli
Esempi pratici di utilizzo dei modelli
Link copiato negli appunti

Vediamo ora come poter creare delle nostre regole che ci permettono di trasformare il documento XML dell'esempio 1.

Esempio 2

Documento XSLT (listacd_es2.xslt)

<?xml version="1.0" encoding="UTF-8"?>  <!-- Prologo XML -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<!-- Applica questo template al nodo radice
	     indicato dal carattere / -->
    <xsl:template match="/">
       <html><body>
		 <xsl:apply-templates>
                    <!-- Richiama e applica gli altri template -->
		 </xsl:apply-templates>
       </body></html>
    </xsl:template>
	<!-- Quando trova un nodo artista
	     applica questa regola -->
    <xsl:template match="artista">
         <xsl:value-of select="nome"></xsl:value-of>
         <br />
    </xsl:template>
</xsl:stylesheet>

Prima di esaminare l'output della trasformazione osserviamo il codice XSLT riportato sopra. L'elemento xsl:template è un modello che definisce delle regole che vengono applicate al nodo specificato nell'attributo match del documento sorgente XML.

L'utilizzo del carattere / indica al processore di applicare queste regole all'elemento radice dell'XML (nel nostro caso l'elemento radice nel documento XML è <listacd>).

All'interno dell'elemento xsl:template per prima cosa inseriamo i tag <html> e all'interno di questi utilizziamo l'elemento xsl:apply-templates per richiamare gli altri modelli che saranno applicati agli elementi figli.

Nel nostro caso abbiamo definito un altro modello che viene applicato agli elementi <artista> e come regole utilizziamo l'elemento xsl:value-of con l'attributo select per dire al processore di prendere il valore contenuto all'interno dell'elemento <nome>. Infine utilizziamo il <br /> per andare a capo dopo ogni nome.

In definitiva il nostro XSLT esegue le seguenti azioni sul file XML: Prende l'elemento radice e ogni volta che trova un elemento <artista> calcola il valore contenuto dentro l'elemento figlio <nome> e lo stampa in output sul browser.

Ecco il risultato, ovvero l'output della trasformazione (esempio 2).

<html><body>
Stanley Jordan
<br />
Nick Drake
<br />
Jeff Buckley
<br />
Joe Satriani
<br />
</body></html>

Considerazioni importanti

  • quando un Tamplate non corrisponde a nessun elemento dell'XML questo semplicemente non viene applicato, non crea quindi nessun errore 
  • il codice dell'XSLT dell'esempio 2 può essere ridotto se tutti gli elementi vuoti vengono scritti in questo modo <elemento/> (per esempio <xsl:apply-templates></xsl:apply-templates> può essere scritto così <xsl:apply-templates/> lo stesso vale per <br></br> che possiamo scrivere così <br/>;)

Ti consigliamo anche