|
Subject: [xsl] XQuery/XPath 3.1: Node List to Node Set ("distinct nodes") From: "Eliot Kimber eliot.kimber@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 28 Dec 2021 19:09:50 -0000 |
I couldnt find an answer in my google and markmail searching so I thought Id
ask here:
Given an arbitrary list of nodes that may contain duplicates, what is the most
efficient way to reduce the node list to a set?
The solution I came up with is a recursive function:
(:
Get the unique nodes from the supplied sequence
@param nodes The sequence of nodes to evaluate
@return A sequence of nodes such that each node in $nodes exists exactly
once.
:)
declare function dutils:distinctNodes($nodes as node()*) as node()* {
dutils:_getDistinctNodes($nodes, ())
};
declare function dutils:_getDistinctNodes($nodes as node()*, $resultList as
node()*) as node()* {
if (exists($nodes))
then
let $node := head($nodes)
return dutils:_getDistinctNodes(tail($nodes), ($resultList | $node))
else $resultList
};
Which works but I feel like Im missing some obvious way to do this more
directly, but Im not seeing it.
Am I missing a better solution?
Thanks,
Eliot
_____________________________________________
Eliot Kimber
Sr Staff Content Engineer
O: 512 554 9368
M: 512 554 9368
servicenow.com<https://www.servicenow.com>
LinkedIn<https://www.linkedin.com/company/servicenow> |
Twitter<https://twitter.com/servicenow> |
YouTube<https://www.youtube.com/user/servicenowinc> |
Facebook<https://www.facebook.com/servicenow>
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Aw: [xsl] PDF output - file can, Michele R Combs mrro | Thread | Re: [xsl] XQuery/XPath 3.1: Node Li, Martin Honnen martin |
| Re: Aw: [xsl] PDF output - file can, Michele R Combs mrro | Date | Re: [xsl] XQuery/XPath 3.1: Node Li, Martin Honnen martin |
| Month |