XSLT-Elemente

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

 

 

xsl:when

Das xsl:when-Element ist immer ein Kindelement von xsl:choose und kann neben anderen xsl:when-Instrunktionen ein einziges Geschwisterelement xsl:otherwise auf der Following-Sibling-Achse haben. Die Sub-Instruktion ist so Teil einer IF-Then-Else-Konstruktion und übernimmt den "Then"-Part.

Eine xsl:when-Instruktion erhält mit dem test-Attribut eine Bedingung. Wird diese Bedingung erfüllt (mit dem wert true), wird sie ausgeführt. Die Ausführung erfolgt dem Inhalt des xsl:when-Elementes - im einfachsten Fall die Übernahmen des Inhaltes in das Ergebnisdokument - entsprechend.

Wird die Bedingung einer xsl:when-Instruktion erfüllt, werden alle anderen xsl:when-Instruktionen auf der Following-Sibling-Achse, sowie die möglicherweise existierende xsl:otherwise-Instruktion ignoriert. Alle xsl:when-Instruktionen, deren Bedingungen nicht erfüllt werden, werden ebenso ignoriert. Wird keine der xsl:when-Bedingungen erfüllt, tritt die xsl:otherwise-Instruktion in Kraft. Gibt es keine, wird die gesamte xsl:choose-Instruktion ignoriert. Innerhalb des Elementes können alle Instruktionen auftauchen, die auch in einem xsl:template verwendet werden können. Die Instruktion xsl:choose mit nur einem xsl:when-Element und keinem xsl:otherwise-Element hat die gleiche Funktion wie die Instruktion xsl:if, ist aber leichter erweiterbar

Attribute

test

Beispiel 2

<?xml version="1.0"encoding="UTF-8"?>
<root>
  <section>
    <para style="bold">
    Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, 
    fand er sich in seinem Bett zu einem ungeheueren Ungeziefer 
    verwandelt.
    </para>
  </section>
  <section>
    <para style="italic">
    Er lag auf seinem panzerartig harten Rücken und sah, wenn er 
    den Kopf ein wenig hob, seinen gewölbten, braunen, von 
    bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe 
    sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum 
    noch erhalten konnte.
    </para>
  </section>
  <section>
    <para>
    Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich 
    dünnen Beine flimmerten ihm hilflos vor den Augen.
    </para>
  </section>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="para">
        <p>
            <xsl:choose>
                <xsl:when test="@style='italic'">
                    <i>
                        <xsl:value-of select="."></xsl:value-of>
                    </i>
                </xsl:when>
                <xsl:when test="@style='bold'">
                    <b>
                        <xsl:value-of select="."></xsl:value-of>
                    </b>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="."></xsl:value-of>
                </xsl:otherwise>
            </xsl:choose>
        </p>
    </xsl:template>
</xsl:stylesheet>

Beispiel 3

<?xml version="1.0"encoding="UTF-8"?>
<root>
  <section>
    <para style="bold">
    Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, 
    fand er sich in seinem Bett zu einem ungeheueren Ungeziefer 
    verwandelt.
    </para>
  </section>
  <section>
    <para style="italic">
    Er lag auf seinem panzerartig harten Rücken und sah, wenn er 
    den Kopf ein wenig hob, seinen gewölbten, braunen, von 
    bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe 
    sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum 
    noch erhalten konnte.
    </para>
  </section>
  <section>
    <para>
    Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich 
    dünnen Beine flimmerten ihm hilflos vor den Augen.
    </para>
  </section>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="para">
        <p>
            <xsl:choose>
                <xsl:when test="@style='italic'">
                    <i>
                        <xsl:value-of select="."></xsl:value-of>
                    </i>
                </xsl:when>
                <xsl:when test="@style='bold'">
                    <b>
                        <xsl:value-of select="."></xsl:value-of>
                    </b>
                </xsl:when>
            </xsl:choose>
        </p>
    </xsl:template>
</xsl:stylesheet>

Beispiel 4

<?xml version="1.0"encoding="UTF-8"?>
<root>
  <section>
    <para style="bold">
    Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, 
    fand er sich in seinem Bett zu einem ungeheueren Ungeziefer 
    verwandelt.
    </para>
  </section>
  <section>
    <para style="italic">
    Er lag auf seinem panzerartig harten Rücken und sah, wenn er 
    den Kopf ein wenig hob, seinen gewölbten, braunen, von 
    bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe 
    sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum 
    noch erhalten konnte.
    </para>
  </section>
  <section>
    <para>
    Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich 
    dünnen Beine flimmerten ihm hilflos vor den Augen.
    </para>
  </section>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="section">
        <p>
            <xsl:choose>
                <xsl:when test="para/@style='italic'">
                    <i>
                        <xsl:value-of select="."></xsl:value-of>
                    </i>
                </xsl:when>
                <xsl:when test="para/@style='bold'">
                    <b>
                        <xsl:value-of select="."></xsl:value-of>
                    </b>
                </xsl:when>
                <xsl:when test=".[para]">
                Diese xsl:when-Instruktion trifft auf alle drei 
        sections zu, wird aber nur bei der dritten angewandt.
                </xsl:when>
            </xsl:choose>
        </p>
    </xsl:template>
</xsl:stylesheet>

 

 

  > nach oben
   
  > zurück zur alphabetischen Liste der XSLT Elemente