XSL-Übersicht / xsl:if

xsl:if

xsl:if

xsl:if erlaubt eine einfache Fallprüfung.

Wenn Sie 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 Nummerierung 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, das die Nummerierung 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 Nummerierung gewünscht, dann muss 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 / 5. April 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






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