[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] eliminating duplicates


Subject: Re: [xsl] eliminating duplicates
From: Garvin Riensche <g.riensche@xxxxxxx>
Date: Thu, 10 May 2007 23:30:17 +0200

Hi Spencer,

Many thanks to you and to everybody else who posted hints or complete solutions to my problem!

Regards,
Garvin


Hi Garvin,

if your using xslt 2.0 it's pretty easy:

    <xsl:for-each-group select="//edge" group-by="@source">
        <xsl:for-each-group select="current-group()" group-by="@target">
            <xsl:copy>
                <xsl:copy-of select="@*"/>
            </xsl:copy>
        </xsl:for-each-group>
    </xsl:for-each-group>

if your using 1.0 you may have to wait for someone with more knowledge of keys.

Spencer

On 5/10/07, Steve <subsume@xxxxxxxxx> wrote:
On 5/10/07, Garvin Riensche <g.riensche@xxxxxxx> wrote:
> If there was only one attribute, lets say "source" it would be simple:
> <xsl:for-each
> select="//edge[not(./@source=preceding-sibling::edge/@source)]">
>    <xsl:copy-of select="."/>
> </xsl:for-each>

That wouldn't really work either. That would just assure you didn't
spit out a duplicate of the preceding record.

Someone will surely followup with more comprehensive suggestions about
xsl:key. I'd research it until then. =)

-Steve


Current Thread
Keywords