XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XPath / XPath-Funktionen / XPath: Sequenz-Funktionen / XPath 3.1: Map, xsl:map / XPath: map:get
![]() |
![]() |
➪ map:get gibt den Wert zurück, der einem Schlüssel zugeordnet ist. Ist der Schlüssel nicht vorhanden, gibt map:get eine leere Sequenz zurück.
Signatur:
map:get($map as map(*), $key as xs:anyAtomicType) as item()*
Siehe https://www.w3.org/TR/xpath-functions-31/#func-map-get
<xsl:template match="/">
<root>
<get nr="1">
<xsl:value-of select="map:get($vmap, 2)"/>
</get>
<get nr="2">
<xsl:value-of select="map:get($vmap, 5)"/>
</get>
<get nr="3">
<xsl:for-each select="map:keys($vmap)">
<wert key="{.}">
<xsl:value-of select="map:get($vmap, .)"/>
</wert>
</xsl:for-each>
</get>
</root>
</xsl:template>
Der Wert, der vmap mit dem Schlüssel "2" zugeordnet ist, ist 'Resi Denzschlos'. Einen Schlüssel "5" gibt es in vmap nicht, daher finden Sie hier eine leere Sequenz. Und die Schleife, die über alle keys von vmap läuft, gibt via map:get jeden Einzelwert zurück.
<root>
<get nr="1">Resi Denzschlos</get>
<get nr="2"/>
<get nr="3">
<wert key="0">Hugo Holzflos</key>
<wert key="1">Lotte Rielos</key>
<wert key="2">Resi Denzschlos</key>
</get>
</root>
Einen vergleichbaren Ansatz finden Sie in XQuery:
declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
<erg>
{
let $vvar := map{
0:'Hugo Holzflos',
1:'Lotte Rielos',
2:'Resi Denzschlos'}
for $x in map:keys($vvar) return
<WERT key="{$x}">
{map:get($vvar, $x)}
</WERT>
}
</erg>
Hier sieht das Ergebnis so aus:
<erg>
<WERT key="0">Hugo Holzflos</WERT>
<WERT key="1">Lotte Rielos</WERT>
<WERT key="2">Resi Denzschlos</WERT>
</erg
wg / 7. April 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
ᐃ XPath
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de