Aktuelle Remote-Seminare mit Durchführungsgarantie: Etwas Werbung in eigener Sache Termine: 03.08.-05.08.2020, 21.09.-23.09.2020, 23.11.-25.11.2020, 07.12.-09.12.2020, 22.03.-24.03.2021, 07.06.-09.06.2021, 06.09.-08.09.2021XML Einführung und Grundlagen Termine: 06.08.2020, 20.10.2020, 13.11.2020, 10.12.2020, 25.03.2021, 10.06.2021, 09.09.2021XML - der professionelle Überblick Termine: 23.11.-26.11.2020, 29.03.-01.04.2021Einstieg in die Programmierung Termine: 17.08.-19.08.2020, 14.12.-16.12.2020, 07.04.-09.04.2021XML, XSLT, XPath, XSL-FO Einführung Termine: Termin nach WunschEinstieg in C#.NET Termine: 21.09.-23.09.2020, 11.01.-13.01.2021, 26.05.-28.05.2021, 27.09.-29.09.2021VB.NET für Visual Basic-Programmierer Termine: 21.10.-23.10.2020, 14.12.-16.12.2020, 08.03.-10.03.2021, 19.07.-21.07.2021, 23.08.-25.08.2021XML Grundlagen, XSL-FO, SVG, DocBook, DITA Termine: Termin nach WunschJava Grundlagen Termine: 03.08.-06.08.2020, 30.11.-03.12.2020, 29.03.-01.04.2021C++ für Programmiereinsteiger Termine: 10.09.2020, 11.12.2020, 16.03.2021Neues Seminar: XProc Grundlagen Termine: 21.09.-25.09.2020, 01.03.-05.03.2021Java/JSP/HTML/JDBC/XML Komplett Termine: 07.09.-09.09.2020, 21.10.-23.10.2020, 23.11.-25.11.2020, 25.01.-27.01.2021, 12.04.-14.04.2021, 26.07.-28.07.2021Python für Programmiereinsteiger Last-Minute-Seminare, noch freie Plätze XML Einführung und Grundlagen03.08.-05.08.2020 XML, XSLT, XPath, XSL-FO Einführung17.08.-19.08.2020 Python für Programmiereinsteiger07.09.-09.09.2020

XPROC * XSL-FO * SVG * XML * XML-SCHEMA * XPATH * XSL * XSLT 1.0 * XSLT 2.0 * XSLT 3.0 * XQUERY * ANT



XPath / XPath-Funktionen / XPath 3.1: Map, xsl:map

XPath 3.1: Map, xsl:map

XPath 3.1: Map, xsl:map

➪ Wie Arrays sind auch Maps neue Datentypen in XDM 3.1. Das Datenformat JSON wird in beiden exzessiv genutzt. Spezialfunktionen wie map:size, map:keys, map:find, map:merge, map:get, map:contains, map:put, map:remove, map:entry, map:for-each sowie der Einsatz anonymer Programmierung heben die Möglichkeiten flexibler Implementierungen in XSLT bzw. XQuery auf eine neue Ebene.

Siehe https://www.w3.org/TR/xpath-functions-31/#map-functions.

Eine Map enthält Schlüssel-Wert-Paare, wobei der Schlüssel ein atomic value ist, und der Wert ist eine Sequenz mit den zugeordneten Werten. In einer Map darf derselbe Schlüssel nicht doppelt auftauchen. Das wäre der Fall, wenn die Spezialfunktion op:same-key($key1, $key2) den Wert true ergibt. Weitere Infos zu diesem Thema finden Sie bei den Anmerkungen über map:merge.

Der einzubindende Namespace ist:


xmlns:map="http://www.w3.org/2005/xpath-functions/map"

Siehe .

Nehmen Sie als Beispiel eine XSL-Variable vmap, deren Inhalt eine Map darstellt.


<xsl:variable name="vmap" as="map(xs:integer, xs:string)">
    <xsl:map>
      <xsl:map-entry key="0" select="'Hugo Holzflos'"/>
      <xsl:map-entry key="1" select="'Lotte Rielos'"/>
      <xsl:map-entry key="2" select="'Resi Denzschlos'"/>
    </xsl:map>
</xsl:variable> 

Denselben Effekt erreichen Sie mit


<xsl:variable 
     name="vmap" 
     select="map{
                 0:'Hugo Holzflos', 
                 1:'Lotte Rielos', 
                 2:'Resi Denzschlos'}"/>

Um die Werte für vmap direkt aus dem XML-Source-Dokument entnehmen zu können, genügt eine simple xsl:for-each-Schleife:


<xsl:variable name="vmap" as="map(xs:integer, xs:string)">
    <xsl:map>
      <xsl:for-each select="//Mensch">
        <xsl:map-entry
             key="xs:integer(id)" 
             select="concat(vorname, ' ', name)"/>
      </xsl:for-each>      
    </xsl:map>
</xsl:variable> 

Diese XSL-Variable vmap" kann durch diverse map-Funktionen angesprochen (ausgewertet, erweitert, verkürzt, verändert) werden.

wg / 7. April 2020



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