This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Sorting Problem
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: Re: [xsl] Sorting Problem
- From: Jörg Heinicke <joerg dot heinicke at gmx dot de>
- Date: Wed, 12 Sep 2001 21:24:36 +0200
- References: <LPBBINMALFCHOBCMKNMPAEIACDAA.devc33@yahoo.co.uk>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hello Dev,
your first problem will be solved with the following stylesheet:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:key name="pupils" match="pupil" use="name"/>
<xsl:template match="records">
<xsl:copy>
<xsl:apply-templates
select="pupil[count(.|key('pupils',name)[1])=1]">
<xsl:sort select="count(key('pupils',name))"
order="descending"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="pupil">
<xsl:copy>
<xsl:apply-templates select="name"/>
</xsl:copy>
</xsl:template>
<xsl:template match="name">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
<number-of-occurence>
<xsl:value-of select="count(key('pupils',.))"/>
</number-of-occurence>
</xsl:template>
</xsl:stylesheet>
With your second wish I have my problems, I don't understand it. Maybe tell
us more.
Joerg
> Based on the frequency of the value in the <pupil> tag.
> Any ideas would be greatly appreciated.
> Also I want to introduce a weighting system so I can
> then add the school field to the results based on
> the weights I give each school.
>
> For example if I had the following weights with 1 being the greatest:
>
> Cambridge=1
> Oxford=2
> Eton=3
>
> I could then produce results such as :
>
> <records>
> <pupil>
> <name>Davis</name>
> <school>Cambridge</school>
> </pupil>
> <pupil>
> <name>Jones</name>
> <school>Oxford</school>
> </pupil>
> <pupil>
> <name>Smith</name>
> <school>Oxford</school>
> </pupil>
> <records>
>
> I also would like <name> fields that only occur once being ordered using
the
> weighting system as well.
>
> A tough problem I know but any advice on where to start would be greatly
> appreciated.
> Thanks in advance.
>
> Regards,
> Dev.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list