# 8.1 -Iterazione dei modelli XSLT

Si supponga che un documento XML includa un insieme di elementi di dati con la stessa struttura. Ad esempio, il seguente documento XML

Esempio di file XML : ulist.xml (versione XML) ---- ulist.xml (versione TXT)

contiene un insieme di elementi ("items") con la stessa struttura. Ogni elemento denota semanticamente un tipo di aereo. Immaginiamo ora di voler trasformare tale documento XML in un documento HTML che visualizzi gli elementi in una sequenza, del tipo "elenco puntato". A tale scopo si puo' definre un foglio di stile XSLT come segue:

Esempio di Foglio di Stile XSLT : ulist.xsl(versione XSL) ---- ulist.xsl(versione TXT)

Il processore XSLT restituira' il seguente file HTML di output.

## Iterazione di modelli

Consideriamo ora il seguente documento XML, una generalizzazione (una semplificazione!) del documento XML visto sopra:

Esempio di file XML : ulist2.xml (versione XML) ---- ulist2.xml (versione TXT)

Il modello XSLT utilizzato per un aereo (elemento `item`) puo' venire impiegato ripetutamente con l'elemento `for-each`. Questo elemento utilizza un attributo `select` per specificare un elemento nei dati XML. Il valore dell'attributo `select` e' un pattern, ovvero l'espressione di percorso che specifica un elemento. Tutti gli elementi figli di questo elemento specificato vengono inclusi.

Ad esempio, il documento XML `ulist2.xml` quando viene visualizzato con il seguente foglio di stile XSLT:

Esempio di Foglio di Stile XSLT : ulist2.xsl(versione XSL) ---- ulist2.xsl(versione TXT)

produrra' il seguente file HTML di output.

Un ulteriore rffinamento dell'esempio precedente:

Esempio di lista XML: ulist4.xml(versione XML) ---- ulist4.xml(versione TXT)
Con relativo Foglio di Stile XSL: ulist4.xsl(versione XSL) ---- ulist4.xsl(versione TXT)