RE: 2 unique lists

Subject: RE: 2 unique lists
From: "Chris Bayes" <Chris@xxxxxxxxxxx>
Date: Mon, 7 Aug 2000 17:47:29 +0100
>Hello all.  
>
>This another question about deriving a unique list from xmldata, 
>but I think 
>mine is a little different.  I have the following xml:
>
><schedule>
>	<person name="person1">
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>	</person>
>	<person name="person2">
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>		<date>Feb2000</date>
>		<date>Mar2000</date>
>		<date>Apr2000</date>
>	</person>
></schedule>	
>
>	 and from this I want two unique lists of dates, thus 
>
>	 person1: Feb2000, Mar2000, Apr2000.
>	 person2: Feb2000, Mar2000, Apr2000.
>
>	 Here is the first stylesheet, using preceding:
>
><xsl:template match="person">
>  <xsl:value-of select="@name"/><xsl:text>: </xsl:text>
>  <xsl:for-each select="date[ not( . = preceding::date )]">
>    <xsl:value-of select="."/>
>    <xsl:if test="not(position()=last())">, </xsl:if>
>  </xsl:for-each>
></xsl:template>

You could try 

<xsl:template match="person">
  <xsl:value-of select="@name"/><xsl:text>: </xsl:text>
  <xsl:for-each select="date[ not( . = preceding-sibling::date )]">
    <xsl:value-of select="."/>
    <xsl:if test="not(position()=last())">, </xsl:if>
  </xsl:for-each>
</xsl:template>

Ciao Chris


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


Current Thread