XPROC * XSL-FO * SVG * XML * XML-SCHEMA * XPATH * XSL * XSLT 1.0 * XSLT 2.0 * XSLT 3.0 * XQUERY * ANT



XSL / xsl:if

xsl:if

xsl:if

xsl:if erlaubt eine einfache Fallprüfung.

Auf dieser Seite:

Siehe , und .

xsl:if in 1.0


<xsl:if
  test = boolean-expression>
  <!-- Content: template -->
</xsl:if>

Siehe auch https://www.w3.org/TR/xslt-10/#element-apply-templates.

xsl:if in 2.0 und 3.0


<xsl:if
  test = expression>
  <!-- Content: sequence-constructor -->
</xsl:if>

Siehe auch https://www.w3.org/TR/xslt20/#element-if.

Siehe auch https://www.w3.org/TR/xslt-30/#element-if.

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 -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 / 27. Juni 2020



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.




XSL

xsl:function



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