RE: [xsl] returning distinct results

Subject: RE: [xsl] returning distinct results
From: "Tim" <xsl@xxxxxxxxxxxxxx>
Date: 30 Aug 2001 16:32:05 -0000
Thanks Bryan,  that's what I needed.  Just added /text() :
select="//town[not(./text()=preceding::town/text())]
and it worked.

Thanks again, Tim.
> 
> Tim,
> 
> Try 	select="//town[not(.=preceding::town)]" 	as your select
> statement
> 
> Bryan
> 
> -----Original Message-----
> From: Tim [mailto:xsl@xxxxxxxxxxxxxx]
> Sent: Thursday, August 30, 2001 12:55 PM
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] returning distinct results
> 
> 
> Hi,
> 
> I have a list of branches some of which are in the same town.  I 
would 
> like to generate some html to display just the list of towns in a two 
> column list.  I have the columns working but I can't work out how to 
> remove duplicate towns.
> 
> I am trying to order by town name and see if the previous name 
matches 
> the current but the //town[position()-1] returns an empty set.
> 
> Any ideas would be great.
> 
> Ta,
> Tim.
> 
> Example XML:
> <branches>
>  <branch>
>   <name>A branch</name>
>   <town>Aberdeen</town>
>  </branch>
>  <branch>
>   <name>Another branch</name>
>   <town>Aberdeen</town>
>  </branch>
>  <branch>
>   <name>Yet Another branch</name>
>   <town>Bournemouth</town>
>  </branch>
> </branches>
> 
> XSL:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> xmlns:fo="http://www.w3.org/1999/XSL/Format";>
> 	<xsl:template match="/">
> 			<xsl:call-template name="alltowns"/>
> 	</xsl:template>
> 	
> 	<xsl:template name="alltowns">
> 		<xsl:variable name="t-size" select="count(//town)"/>
>   		<xsl:variable name="half" select="ceiling($t-size div 
> 2)"/>
> 		<table>
> 		<tr>
> 		<td>
>    		<ul>
> 			
> 			<xsl:for-each select="//town[position() &lt;= 
> $half]">
> 				<xsl:if test="position() = 1 | //town
> [position()-1]/text() != ./text()">
> 					<li><a><xsl:attribute 
> name="href">locationDetails.jsp?town=<xsl:value-of 
> select="."/></xsl:attribute><xsl:value-of select="."/></a></li>
> 				</xsl:if>
> 			</xsl:for-each>
> 		</ul>
> 		</td>
> 		<td>
>    		<ul>
> 			<xsl:for-each select="//town[position() &gt; 
> $half]">
> 					<li><a><xsl:attribute 
> name="href">locationDetails.jsp?town=<xsl:value-of 
> select="."/></xsl:attribute><xsl:value-of select="."/></a></li>	
	
> 	</xsl:for-each>
> 		</ul>
> 		</td>
> 		</tr>
> 		</table>
> 	</xsl:template>
> </xsl:stylesheet>
> 
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 



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


Current Thread