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


XPath: remove

Zusammenfassung:

Die "remove"-Funktion löscht bestimmte Items (die sich aus ihrer Indexposition ergeben) aus einer Sequence.

XPath: remove

Zur Demonstration verwenden wir auch hier eine Sequenzvariable "vseq", die sich aus einer vorab gefilterten ("contains") und sortierten (xsl:sort select="Gehalt") Itemliste ergibt.

 <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>

Die Normalliste ergibt folgendes Ergebnis:

     <xsl:call-template name="out">
      <xsl:with-param name="pseq" select="$vseq"/>
    </xsl:call-template>
Resultat:
  <m nr="1">Leinenlos</m>
  <m nr="2">Muehelos</m>
  <m nr="3">Ruhelos</m>
  <m nr="4">Rielos</m>
  <m nr="5">Herzlos</m>
  <m nr="6">Wertlos</m>
  <m nr="7">Bodenlos</m>

Löscht man nun mittels "remove" den Index "5", so erscheint die Liste ohne den vorherigen Eintrag "Herzlos". Dieser Indexwert "5" läßt sich auch über "index-of" ermitteln.

    <xsl:call-template name="out">
      <xsl:with-param name="pseq" select="remove($vseq, 5)"/>
    </xsl:call-template>
Resultat:
  <m nr="1">Leinenlos</m>
  <m nr="2">Muehelos</m>
  <m nr="3">Ruhelos</m>
  <m nr="4">Rielos</m>
  <m nr="5">Wertlos</m>
  <m nr="6">Bodenlos</m>
Dasselbe Ergebnis wird erzielt durch den Einsatz von "index-of":
    <xsl:call-template name="out">
      <xsl:with-param name="pseq" 
        select="remove($vseq, index-of($vseq/name, 'Herzlos'))"/>
    </xsl:call-template>

Zur Vervollständigung auch hier das aufgerufene Template "out".

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

qrpic/remove.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