This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: returning distinct results
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] returning distinct results
- From: "Tim" <xsl at cheekymail dot net>
- Date: 30 Aug 2001 16:32:05 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
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@cheekymail.net]
> Sent: Thursday, August 30, 2001 12:55 PM
> To: XSL-List@lists.mulberrytech.com
> 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() <=
> $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() >
> $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