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


XPath: insert-before

Zusammenfassung:

Die "insert-before"-Funktion fügt ab einer bestimmten Position zusätzliche Items in eine ursprüngliche Sequenz ein, so daß im Ergebnis eine neue Sequenz entsteht.

XPath: insert-before

Zur Erläuterung nehmen wir dieses Mal zwei Sequenzen: in der ersten stecken nur Mensch-Items mit Gehältern über 1000, in der zweiten Mensch-Items mit Gehältern unterhalb 500.

<xsl:variable name="vseq1" as="item()*" 
     select="//Mensch[Gehalt &gt; 1000]"/>
<xsl:variable name="vseq2" as="item()*" 
     select="//Mensch[Gehalt &lt; 500]"/>

Zum Vergleich die Ursprungsliste $vseq1:

<xsl:call-template name="out">
     <xsl:with-param name="pseq" select="$vseq1"/>
 </xsl:call-template>
Resultat: 
      <m nr="1" Gehalt="1234.56">Nixlos</m>
      <m nr="2" Gehalt="5430">Sprachlos</m>
      <m nr="3" Gehalt="6789">Wasistlos</m>
      <m nr="4" Gehalt="3450">Bodenlos</m>

"insert-before" fügt nun ab der 3. Position von $vseq1 die zweite Sequenz $vseq2 ein. (Natürlich läßt sich zum Auffinden der korrekten Position die "index-of"-Funktion verwenden.)

 <xsl:call-template name="out">
     <xsl:with-param name="pseq" 
        select="insert-before($vseq1, 3, $vseq2)"/>    
 </xsl:call-template>
Resultat: 
      <m nr="1" Gehalt="1234.56">Nixlos</m>
      <m nr="2" Gehalt="5430">Sprachlos</m>
      <m nr="3" Gehalt="234.56">Holzflos</m>
      <m nr="4" Gehalt="321.45">Sagblos</m>
      <m nr="5" Gehalt="333.33">Rhodos</m>
      <m nr="6" Gehalt="456">Kolos</m>
      <m nr="7" Gehalt="357">Lustlos</m>
      <m nr="8" Gehalt="234">Ruhelos</m>
      <m nr="9" Gehalt="321">Schlaflos</m>
      <m nr="10" Gehalt="456">Rielos</m>
      <m nr="11" Gehalt="222">Muehelos</m>
      <m nr="12" Gehalt="135">Leinenlos</m>
      <m nr="13" Gehalt="6789">Wasistlos</m>
      <m nr="14" Gehalt="3450">Bodenlos</m>

Und auch hier zur Vervollständigung das aufgerufene Template "out":

   <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/insertbefore.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