xsl:if

Syntax

<xsl:if>
     Template-Body
</xsl:if>


Postition

innerhalb des Template-Bodys


Attribute
Bezeichnung Wert Bedeutung
test Expression boolesche Bedingung, die getestet wird

<xsl:if>

erlaubt die Ausführung des Template-Bodys nur dann, wenn die spezifische Bedingung zutrifft. Ist der Datentyp der Bedingung nicht boolesch, so wird er nach den Regeln der boolean() Funktion umgewandelt.

Handelt es sich bei der Bedingung um einen XPath-Ausdruck sind folgende Regeln zu beachten:
- bei einem Knotenset ist der Ausdruck "true", wenn das Knotenset mindestens einen Knoten enthält
- bei einem String ist er "true", wenn der String nicht leer ist
- bei einer Nummer ist er "true", wenn diese ungleich Null ist


Definition

XSLT Kapitel 9.1


Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
<xsl:output method="html"/>
    
<xsl:template match="/">
     <HTML>
          <HEAD>
               <TITLE>Element: &lt;xsl:if&gt; / Beispiel 01</TITLE>
          </HEAD>
          <BODY>
               <xsl:apply-templates select="shop"/>
          </BODY>
     </HTML>
</xsl:template>

<xsl:template match="shop">
     <TABLE BORDER="1">
          <TR>
               <TH WIDTH="150">Abteilung:</TH>
               <TH WIDTH="100">Artikel:</TH>
               <TH WIDTH="100">Preis:</TH>
          </TR>
          <xsl:apply-templates select="order/product"/>
     </TABLE>
     <xsl:if test="payment">
          <xsl:text>Zahlungsweise:</xsl:text>
          <xsl:value-of select="payment"/>
     </xsl:if>
</xsl:template>

<xsl:template match="product">
     <TR>
          <TD><xsl:value-of select="@department"/></TD>
          <TD>
               <xsl:if test="@department = 'A01'">
                    <xsl:text>Sonderangebot: </xsl:text>
               </xsl:if>
               <xsl:if test="string(name)">
                    <xsl:value-of select="name"/>
               </xsl:if>
          </TD>
          <TD ALIGN="RIGHT">
               <xsl:value-of select="price"/>
               <xsl:text> </xsl:text>
               <xsl:value-of select="currency"/>
          </TD>
     </TR>
</xsl:template>

</xsl:stylesheet>


© 2001 by Timo Schäfer