- Learn
- Guida XSLT
- Filtrare solo i dati che soddisfano una regola
Filtrare solo i dati che soddisfano una regola
- di Enrico Lai
Nell’esempio 9 abbiamo testato per ogni album di ogni
artista se la durata era superiore a 60 minuti. Il risultato è stato quindi una lista con a fianco un “true” se la condizione era vera e
“false” se era falsa. Ci eravamo quindi posti una domanda su come fare nel caso avessimo voluto mettere nell’output solo gli album che effettivamente avevano una durata superiore a 60 minuti.
Dobbiamo quindi fare una scelta di questo tipo: se la durata dell’album è superiore a 60 minuti allora stampa in output il risultato.
In XSLT utilizziamo l’elemento <xsl:if test=” condizione “> dove al posto della parola condizione nell’attributo test scriveremo la condizione che dev’essere soddisfatta.
Riprendiamo quindi l’esempio 9 introducendo però il nostro test. L’XML utilizzato è ancora una volta lo stesso.
Esempio 13.
Codice XSLT utilizzato ( listacd_es13.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>
Lista dei soli CD che hanno un tempo di durata maggiore di 60 minuti
<hr/>
<table cellpadding=”2″ cellspacing=”2″>
<xsl:apply-templates select=”//artista//album”/>
</table>
</html>
</xsl:template>
<xsl:template match=”//artista//album”>
<xsl:if test=”durata > 60″>
<tr bgcolor=”#f3f3f3″>
<td width=”150″>
<xsl:value-of select=”../../@nome”/>
</td>
<td width=”150″>
<xsl:value-of select=”titolo”/>
</td>
<td>
<xsl:value-of select=”durata”/>
</td>
</tr>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Risultato in Output della trasformazione (esempio 13).
<html>
Lista dei soli CD che hanno un tempo di durata maggiore di 60 minuti
<hr>
<table cellpadding=”2″ cellspacing=”2″>
<tr bgcolor=”#f3f3f3″>
<td width=”150″>Stanley Jordan</td>
<td width=”150″>Stolen Moments</td>
<td>72</td>
</tr>
<tr bgcolor=”#f3f3f3″>
<td width=”150″>Nick Drake</td>
<td width=”150″>Five leaves left</td>
<td>65</td>
</tr>
<tr bgcolor=”#f3f3f3″>
<td width=”150″>Jeff Buckley</td>
<td width=”150″>Mistery white boy</td>
<td>86</td>
</tr>
</table>
</html>
Clicca qui per vedere il risultato della trasformazione sul browser.
Se vuoi aggiornamenti su Filtrare solo i dati che soddisfano una regola 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
Liste
Abbiamo due liste e una cambia comportamento in base alle scelte fatte sull’altra, grazie all’evento “OnChange”. Definiamo qui la funzione […]