XSL-Übersicht / xsl:if

xsl:if

xsl:if

➪ xsl:if erlaubt eine einfache Fallprüfung.

Wenn wir aus einem XML Input einen bestimmten Menschen ansprechen, der 876.54 Euro verdient, und prüfen, ob dieser Verdienst über 1000 Euro liegt, dann ist das Ergebnis leer.


<xsl:variable name="vPerson" select="/Orte/Ort[2]/Mensch[3]"/>
<xsl:if test="$vPerson/Gehalt &gt; 1000">reich</xsl:if>

Von einiger Tragweite ist dieser Ansatz im Zusammenhang mit der Numerierung durch die position()-Funktion. Herkömmlichen Programmiergewohnheiten folgend, arbeiten viele Developer mit einer Schleife, in die eine Fallprüfung eingebettet ist.


<xsl:for-each select="/Orte/Ort/Mensch">
  <xsl:if test="Gehalt &gt; 1000">
    <m p="{position()}">
      <xsl:value-of select="vorname"/>
    </m>
  </xsl:if>
</xsl:for-each>

XSLT-Prozessoren generieren das folgende Ergebnis, die die Numerierung aus der Reihenfolge der in XPath "/Orte/Ort/Mensch" angesprochenen Elemente bezieht.


<m p="2">Nicole</m>
<m p="3">Stefan</m>
<m p="13">Willi</m>
<m p="17">Betty</m>

Ist jedoch eine klar aufsteigende Numerierung gewünscht, dann muß die Liste der durch XPath adressierten Elemente sich auf die relevanten Elemente konzentrieren:


<xsl:for-each 
     select="/Orte/Ort/Mensch[Gehalt &gt; 1000]">        
    <m p="{position()}">
      <xsl:value-of select="vorname"/>
    </m>        
</xsl:for-each>

Das Ergebnis lautet dann:


<m p="1">Nicole</m>
<m p="2">Stefan</m>
<m p="3">Willi</m>
<m p="4">Betty</m>

Siehe in diesem Zusammenhang auch meine Anmerkungen zum Thema . Eine mehrstufige Fallauswahl bietet .

wg / 28. Januar 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSL_if.html