Christian and Jean-Paul,
I hadnbt thought about map:for-each() (not sure I even realized it was an
option).
Ibll have to think about that more.
Map:for-each() B feels very familiar to my JavaScript brain (which it pains me
to admit I even have but there it is).
Ibll check out Joebs book...
Cheers,
E.
--
Eliot Kimber
http://contrext.com
From: "Christian GrC<n christian.gruen@xxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Reply-To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Date: Friday, January 7, 2022 at 11:21 AM
To: xsl-list <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Subtle (or not?) Map Processing Bug in XQuery
Hi Eliot,
Ibm also wondering if therebs any general source of XQuery coding patterns
for working with maps in non-trivial ways? I havenbt run across one but I
havenbt looked too hard yet.
You could use map:remove, either with map:keysb&
let $orphanMap := map:remove($imageMap,
map:keys($imageMap)[not(local:notReferenced($imageMap(.)('keyname')))]
)
b&or in combination with map:for-each:
let $orphanMap := map:remove($imageMap,
map:for-each($imageMap, function($k, $v) {
if(local:notReferenced($v('keyname'))) then () else $k
})
)
XQuery 4.0 will probably include a map:filter function [1] and,
possibly, additional functions for iterating over the entries of a map
[2].
Hope this helps,
Christian
[1]
https://qt4cg.org/branch/master/xpath-functions-40/Overview.html#func-map-fil
ter
[2] https://github.com/qt4cg/qtspecs/issues/29
|