XSL - Übersicht / xsl:if

xsl:if

xsl:if

xsl:if erlaubt eine einfache Fallprüfung.

xsl:if

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 / 30. Dezember 2017



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: info2018@wilfried-grupe.de

www.wilfried-grupe.de/XSL_if.html