Elemento <xsl:if> di XSLT

Definizione e uso

<xsl:if> contiene un template che viene applicato solo se il condizione specificata è soddisfatta.

Suggerimento: utilizzare <xsl:choose> insieme a <xsl:when> e <xsl:otherwise> per esprimere test condizionali multipli!

Sintassi

<xsl:if
test="espressione">
<!-- Contenuto: template -->
</xsl:if>

Proprietà

Proprietà Valore Descrizione
test espressione Obbligatorio. Specifica il condizione da testare.

Esempio

Esempio 1

Quando il prezzo del CD è superiore a 10, seleziona i valori di title e artist:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Mia raccolta di CD</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Titolo</th>
        <th>Artista</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <xsl:if test="price > 10">
        <tr>
          <td><xsl:value-of select="title"/></td>
          <td><xsl:value-of select="artist"/></td>
        </tr>
      </xsl:if>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Visualizza il file XML,Visualizza il file XSL,Visualizza i risultati.

Esempio 2

Visualizza il titolo di ogni CD. Se non è l'ultimo o il penultimo CD, inserisci ", " tra i titoli di CD. Se è l'ultimo CD, aggiungi "!" alla fine del titolo. Se è il penultimo CD, aggiungi ", and " dopo di esso:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Mia raccolta di CD</h2>
    <p>Titoli:
    <xsl:for-each select="catalog/cd">
      <xsl:value-of select="title"/>
      <xsl:if test="position()!=last()">
        <xsl:text>, </xsl:text>
      </xsl:if>
      <xsl:if test="position()=last()-1">
        <xsl:text> e </xsl:text>
      </xsl:if>
      <xsl:if test="position()=last()">
        <xsl:text>!</xsl:text>
      </xsl:if>
    </xsl:for-each>
    </p>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>