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

Filtrare solo i dati che soddisfano una regola

Filtrare i dati che soddisfano una specifica condizione: xsl:if test
Filtrare i dati che soddisfano una specifica condizione: xsl:if test
Link copiato negli appunti

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.


Clicca qui per vedere l'XSLT sul browser.

Ti consigliamo anche