Home
Über mich
Veröffentlichungen

XML XML-Schema XPath XSL-T XSL-FO XQuery XProc SVG

XPath / XPath 3.1: Array / XPath: array:remove

XPath: array:remove

XPath: array:remove

➪ Ein Array ist ein neuer Datentyp in XDM 3.1 mit umfangreicher Funktionalität, der als ein Item einer Sequenz zu betrachten ist.

Die XPath-Funktion array:remove ist in der Lage, aus einem Array jenes Feld zu entfernen, das über den Positions-Parameter bestimmt wird.

Beispiel: Aus dem ursprünglich definierten "varray" mit den Inhalten ['Hugo', 'Lotte', 'Theo'] basteln Sie ein zweites Array "vremoved", das den Index an der zweiten Stelle ('Lotte') löscht.


<xsl:variable name="vremoved" select="array:remove($varray, 2)"/>

Bei der Schleife über das Rest-Array ...


<xsl:template match="/">
  <root>
    <xsl:for-each select="1 to array:size($vremoved)">
     <xsl:variable name="vpos" select="fn:position()"/>
     <wert nr="{$vpos}">
      <xsl:value-of select="array:get($vremoved, $vpos)"/>
     </wert>
    </xsl:for-each>
  </root>
</xsl:template>

bleiben nur noch Hugo und Theo übrig:


<root>
  <wert nr="1">Hugo</wert>
  <wert nr="2">Theo</wert>
</root>

Durch eine Sequenz von Löschpositionen können Sie auch mehrere Einzelwerte ansprechen, etwa so:


<xsl:variable name="vremoved" 
     select="array:remove($varray, 2 to 3)"/>

... übrig bliebe dann Hugo:


<root>
  <wert nr="1">Hugo</wert>
</root>

... oder durch gezielte Einzelwerte:


<xsl:variable name="vremoved" 
     select="array:remove($varray, (1,3))"/>

Wenn die Felder an der Stelle 1 und 3 gelöscht werden, dann bleibt nur 'Lotte' übrig:


<root><wert nr="1">Lotte</wert></root>

wg / 22. April 2021



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






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/xpath_array5.html