xsl-list
[Top] [All Lists]

Re: [xsl] Subtle (or not?) Map Processing Bug in XQuery

2022-01-07 11:21:40
Hi Eliot,

I’m also wondering if there’s any general source of XQuery coding patterns 
for working with maps in non-trivial ways? I haven’t run across one but I 
haven’t looked too hard yet.

You could use map:remove, either with map:keys…

let $orphanMap := map:remove($imageMap,
  map:keys($imageMap)[not(local:notReferenced($imageMap(.)('keyname')))]
)

…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-filter
[2] https://github.com/qt4cg/qtspecs/issues/29
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--


<Prev in Thread] Current Thread [Next in Thread>