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

Re: [xsl] Duplicate Elimination


Subject: Re: [xsl] Duplicate Elimination
From: Martin Holmes <mholmes@xxxxxxx>
Date: Wed, 12 Mar 2014 14:14:44 -0700

If the text content of the element is all you care about, you could do something like this:

<xsl:variable name="distinctDates">
<xsl:for-each select="distinct-values(A/Date | B/Date)">
	<xsl:sort/>
	<Date><xsl:value-of select="."/></Date>
</xsl:for-each>
</xsl:variable>

<xsl:apply-templates select="$distinctDates/Date"/>



On 14-03-12 01:34 PM, Ihe Onwuka wrote:
I have Date elements coming from 2 different parents.

<A>
   <Date>blah</Date>
</A>

<B>
     <Date>blah</Date>
</B>

I am doing

<xsl:apply-templates select="A/Date | B/Date>
    <xsl:sort select="." order="ascending"/>
</xsl:apply-templates>

and

<xsl:template match="Date">
  etc
</xsl:template>

I have noticed that when A and B have a child element of the same date
the Date template gets fired on each occasion, whereas I only want it
fired once

I  thought the union operator in the apply-templates would have the
effect of  eliminating duplicates or aren't they duplicates if they
have the same content but come from different parents.


Current Thread