Re: [xsl] sort | uniq via keys

Subject: Re: [xsl] sort | uniq via keys
From: "Thomas B. Passin" <tpassin@xxxxxxxxxxxx>
Date: Thu, 14 Feb 2002 12:32:02 -0500
My post from February 11,2002, with the title "Re: [xsl] Many sets of eyes "
shows how to get a unique list of elements sorted by names (unique meaning
that each element name occurs once).  That should be close enough to get you
started.

Cheers,

Tom P

[Saverio Perugini]>
> I am interested in a sorted and uniqed list of all element names in
> an XML file (except for the root), similar to `sort | uniq' in UNIX.
>
> e.g., in the following data,
>
> <db>
>    <a>...</a>
>    <z>...</z>
>    <g>...</g>
>    <j>
>       <f>...</f>
>       <z>...</z>
>       <a><o>...</o></a>
>    </j>
>    <b>...</b>
>    <b>...</b>
> </db>
>
> I'd like the following list
>
> a
> b
> f
> g
> j
> o
> z
>
> I am trying to achieve this with keys (unless someone can direct me to
> a simpler method).  The following is an initial attempt.
>
> <xsl:key name="features" match="*" use="name()"/>
>
> <xsl:template match="/db">
>
> <xsl:for-each select="following::*[count (. | key('features', name())[1])
= 1]">
>    <xsl:sort select="name()" />
>    <xsl:value-of select="name()" /><xsl:text>
> </xsl:text>
> </xsl:for-each>
>
> </xsl:template>
>
> <xsl:template match="text()"/>
>
> This is not working out however.  It returns an empty file.  Does this
> appear to be correct?
>



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread