Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


XPath: reverse

Zusammenfassung:

Die "reverse"-funktion kehrt die Reihenfolge der Items in einer Sequence um.

XPath: reverse

<xsl:variable name="vinfo" select="'Hund', 'beisst', 'Mann'"/>
<xsl:value-of select="reverse($vinfo)"/>

Das Ergebnis lautet dann:

Mann beisst Hund

Wie schon bei "index-of" und "subsequence", können wir auch hier mit einer Variablen "vseq" als Itemliste arbeiten. (Damit das Ergebnis nicht immer dasselbe ist - wäre doch langweilig - sortieren wir die Itemliste noch einmal aufsteigend nach Gehalt.)

<xsl:variable name="vseq" as="item()*" >
    <xsl:for-each select="//Mensch[contains(name, 'e')]">
        <xsl:sort select="Gehalt" data-type="number" order="ascending"/>
        <xsl:copy-of select="."/>
    </xsl:for-each>
</xsl:variable>

Der normale Abarbeitung dieser Sequenz über das separate Template "out" (siehe unten) ergibt das urspüngliche Resultat

<xsl:call-template name="out">
    <xsl:with-param name="pseq" select="$vseq"/>
</xsl:call-template>

Resultat:

      <m nr="1" Gehalt="135">Leinenlos</m>
      <m nr="2" Gehalt="222">Muehelos</m>
      <m nr="3" Gehalt="234">Ruhelos</m>
      <m nr="4" Gehalt="456">Rielos</m>
      <m nr="5" Gehalt="654.21">Herzlos</m>
      <m nr="6" Gehalt="777.77">Wertlos</m>
      <m nr="7" Gehalt="3450">Bodenlos</m>

Die "reverse"-Funktion kehrt diese Reihenfolge um:

<xsl:call-template name="out">
    <xsl:with-param name="pseq" select="reverse($vseq)"/>
</xsl:call-template>

OK, wir hätten gleich anders sortieren können

<xsl:sort select="Gehalt" data-type="number" order="descending"/>

Das Resultat ist jedenfalls:

      <m nr="1" Gehalt="3450">Bodenlos</m>
      <m nr="2" Gehalt="777.77">Wertlos</m>
      <m nr="3" Gehalt="654.21">Herzlos</m>
      <m nr="4" Gehalt="456">Rielos</m>
      <m nr="5" Gehalt="234">Ruhelos</m>
      <m nr="6" Gehalt="222">Muehelos</m>
      <m nr="7" Gehalt="135">Leinenlos</m>

Zur Vervollständigung folgt hier noch das Template "out", das für die o.a. Ausgabe sorgen soll.

    <xsl:template name="out">
        <xsl:param name="pseq" as="item()*"/>
        <xsl:for-each select="$pseq">
            <m nr="{position()}" Gehalt="{Gehalt}">
                <xsl:value-of select="name"/>
            </m>
        </xsl:for-each>
    </xsl:template>

qrpic/reverse.jpg

wg / 3. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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