[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XQuery/XPath 3.1: Node List to Node Set ("distinct
Am 29.12.2021 um 00:32 schrieb Dimitre Novatchev dnovatchev@xxxxxxxxx: > > > On Tue, Dec 28, 2021 at 3:29 PM Dimitre Novatchev > <dnovatchev@xxxxxxxxx> wrote: > > A pure XPath solution: > > let $ids := distinct-values($nodes ! generate-id(.)) > B B return B $ids ! (function($id) {$nodes[generate-id(.) eq > $id][1]})(.) > > Happy New Year to all ! > > > > Hit Send too early: > > Do notice: this seems the only solution of all presented so far, that > preserves the original sequence order (not document order) of the nodes. Why is the original sequence order preserved? https://www.w3.org/TR/xpath-functions/#func-distinct-values clearly says "The function returns the sequence that results from removing from|$arg|all but one of a set of values that are considered equal to one another. [...] The order in which the sequence of values is returned isB7implementation-dependentB7 <https://www.w3.org/TR/xpath-functions/#implementation-dependent>. Which value of a set of values that compare equal is returned isB7implementation-dependentB7 <https://www.w3.org/TR/xpath-functions/#implementation-dependent>." So while B B $nodes ! generate-id(.) gives you the generated ids in the order of the nodes in $nodes after the call to distinct-values there is no order defined, it is implementation dependent.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|