Re: [xsl] XSLT 2 and XSLT 3: Best Way To Get Set of Unique Docs for A Set of Elements

Subject: Re: [xsl] XSLT 2 and XSLT 3: Best Way To Get Set of Unique Docs for A Set of Elements
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 5 Mar 2019 19:36:47 -0000
Of course--that's the obvious solution I was missing.

Thanks,

Eliot

--
Eliot Kimber
http://contrext.com


o;?On 3/5/19, 1:15 PM, "Martin Honnen martin.honnen@xxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

    On 05.03.2019 20:08, Eliot Kimber ekimber@xxxxxxxxxxxx wrote:
    > Given the variable $links that is a sequence of element()s where the
elements could be from different documents, what is the best way to get the
set of unique documents?
    >
    > I need an XSLT 2 answer but an XSLT 3 answer would also be useful.
    >
    > I feel like there's an obvious solution I'm overlooking but the only
thing I can think of is to compare the document-uri() values of all the
elements:
    >
    >      <xsl:variable name="topicURIs" as="xs:string*"
    >        select="distinct-values(for $e in $links return
document-uri(root($e)))"
    >      />
    >      <xsl:variable name="topics" as="document-node()*"
    >          select="
    >          for $uri in $topicURIs
    >          return root(($links[document-uri(root(.)) eq $uri])[1])
    >          "
    >      /> o;?
    >
    > This works but seems unnecessarily complicated.


    Wouldn't
       $links/root()
    suffice?

Current Thread