Aktuelle Remote-Seminare mit Durchführungsgarantie: Noch freie Termine im Dezember! Termine: 07.12.-09.12.2020, 22.03.-24.03.2021, 07.06.-09.06.2021, 06.09.-08.09.2021, Termin nach Wunsch, noch in Dezember 2020 möglichXML Einführung und Grundlagen Termine: 25.03.2021, 10.06.2021, 09.09.2021XML - der professionelle Überblick Termine: 29.03.-01.04.2021Einstieg in die Programmierung Termine: 14.12.-16.12.2020, 07.04.-09.04.2021XML, XSLT, XPath, XSL-FO Einführung Termine: Termin nach Wunsch, noch in Dezember 2020 möglichEinstieg in C#.NET Termine: 11.01.-13.01.2021, 26.05.-28.05.2021, 27.09.-29.09.2021, Termin nach Wunsch, noch in Dezember 2020 möglichVB.NET für Visual Basic-Programmierer Termine: Termin nach Wunsch, noch in Dezember 2020 möglichC#.NET für Fortgeschrittene Termine: 08.03.-10.03.2021, 19.07.-21.07.2021, 23.08.-25.08.2021, Termin nach Wunsch, noch in Dezember 2020 möglichXML Grundlagen, XSL-FO, SVG, DocBook, DITA Termine: Termin nach Wunsch, noch in Dezember 2020 möglichJava Grundlagen Termine: Termin nach Wunsch, noch in Dezember 2020 möglich, 29.03.-01.04.2021C++ für Programmiereinsteiger Termine: 16.03.2021, Termin nach Wunsch, noch in Dezember 2020 möglichXProc Grundlagen Termine: 23.11.-25.11.2020, 25.01.-27.01.2021, 12.04.-14.04.2021, 26.07.-28.07.2021, Termin nach Wunsch, noch in Dezember 2020 möglichPython für Programmiereinsteiger Last-Minute-Seminare, noch freie Plätze XML Einführung und Grundlagen07.12.-09.12.2020 XML, XSLT, XPath, XSL-FO Einführung14.12.-16.12.2020

XML * XML-SCHEMA * XPATH * XSL * XSL-FO * SVG * XQUERY * XPROC * ANT * DIVERSES



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