<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