[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

Subject: Re: XQuery/XPath 3.1: Node List to Node Set ("distinct nodes")
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Dec 2021 08:21:44 -0000
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.

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.