Στοιχείο <xsl:choose> του XSLT

Ο στοιχείο <xsl:choose> του XSLT χρησιμοποιείται για τη συνδυασμό των <xsl:when> και <xsl:otherwise> για την έκφραση πολλαπλών δοκιμών συνθηκών.

<xsl:choose> στοιχείο

σύνταξη

<xsl:choose>
  <xsl:when test="έκφραση">
    ... Εκτύπωση ...
  </xsl:when>
  <xsl:otherwise>
    ... Εκτύπωση ...
  </xsl:otherwise>
</xsl:choose>

Πού να τοποθετήσετε τις προϋποθέσεις επιλογής

Για να εισάγετε πολλαπλές προϋποθέσεις ελέγχου για αρχείο XML, προσθέστε στο αρχείο XSL τα στοιχεία <xsl:choose>, <xsl:when> και <xsl:otherwise>:

<?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>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
      	<xsl:choose>
          <xsl:when test="price > 10">
            <td bgcolor="#ff00ff">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of select="artist"/></td>
          </xsl:otherwise>
        </xsl:choose>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Το παραπάνω κώδικας θα προσθέσει ένα ροζ χρώμα στο φόντο της στήλης "Artist" όταν η τιμή του CD είναι μεγαλύτερη από 10.

Το παρακάτω αποτέλεσμα είναι παρόμοιο με αυτό:

Ελέγξτε αυτό το αρχείο XML,Ελέγξτε αυτό το αρχείο XSL,Εμφάνιση Αποτελεσμάτων.

Ένας άλλος παράδειγμα

Είναι ένας άλλος παράδειγμα που περιέχει δύο στοιχεία <xsl:when>:

<?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>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
      	<xsl:choose>
          <xsl:when test="price > 10">
            <td bgcolor="#ff00ff">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:when test="price > 9">
            <td bgcolor="#cccccc">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of select="artist"/></td>
          </xsl:otherwise>
        </xsl:choose>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Το παρακάτω κώδικας θα προσθέσει μια ροζ υποβάθμιση στη στήλη "Artist" όταν το κόστος του CD είναι μεγαλύτερο από 10, και θα προσθέσει μια γκρίζα υποβάθμιση στη στήλη "Artist" όταν το κόστος του CD είναι μεγαλύτερο από 9 και μικρότερο ή ίσο με 10.

Το παρακάτω αποτέλεσμα είναι παρόμοιο με αυτό:

Εμφάνιση Αυτός του αρχείου XML,Εμφάνιση Αυτός του αρχείου XSL,Εμφάνιση Αποτελεσμάτων.