This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]