<xsl:if>  
Diese Anweisung implementiert eine if-Anweisung. Sie enthält ein test-Attribut und eine XSLT-Vorlage. Ergibt das Attribut test den Booleschen Wert true, so wird die XSLT-Vorlage verarbeitet. Dieses Element implementiert nur eine if-Anweisung. Wenn Sie hingegen eine if-then-else-Anweisung benötigen, verwenden Sie das Element <xsl:choose> zusammen mit einem einzigen <xsl:when> und einem einzigen <xsl:otherwise>.
 
Kategorie

Anweisung

 
Obligatorische Attribute
test
Das Attribut test enthält einen Booleschen Ausdruck. Ergibt das Attribut den Booleschen Wert true, so wird die XSLT-Vorlage innerhalb von < xsl:if > verarbeitet.

 
Optionale Attribute

Keine

 
Inhalt

Eine XSLT-Vorlage

 
Übergeordnetes Element

<xsl:if> erscheint innerhalb einer Template.

 
Definition

XSLT-Abschnitt 9.1, Bedingte Verarbeitung mit xsl:if

 
Beispiel

Die Funktionsweise des Elements <xsl:if> wird durch das folgende Stylesheet veranschaulicht:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text"/>

  <xsl:variable name="newline">
<xsl:text>
</xsl:text>
  </xsl:variable>

  <xsl:template match="/">
    <xsl:value-of select="$newline"/>
    <xsl:text>Here are the odd-numbered items from the list:</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:for-each select="list/listitem">
      <xsl:if test="(position() mod 2) = 1">
        <xsl:number format="1. "/>
        <xsl:value-of select="."/>
        <xsl:value-of select="$newline"/>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>
  
</xsl:stylesheet>

Dieses Stylesheet verwendet das Element <xsl:if>, um festzustellen, ob es sich bei der Position eines bestimmten <listitem> um eine ungerade Zahl handelt. Ist das der Fall, wird sie in den Ergebnisbaum geschrieben. Dieses Stylesheet wird mit dem folgenden Dokument getestet:

<?xml version="1.0"?>
<list>
  <title>A few of my favorite albums</title>
  <listitem>A Love Supreme</listitem>
  <listitem>Beat Crazy</listitem>
  <listitem>Here Come the Warm Jets</listitem>
  <listitem>Kind of Blue</listitem>
  <listitem>London Calling</listitem>
  <listitem>Remain in Light</listitem>
  <listitem>The Joshua Tree</listitem>
  <listitem>The Indestructible Beat of Soweto</listitem>
</list>

Hier die Ergebnisse, die entstehen, wenn diese Transformation ausgeführt wird:

Here are the odd-numbered items from the list:
1. A Love Supreme
3. Here Come the Warm Jets
5. London Calling
7. The Joshua Tree