Subject: Re: sort, count, number, group From: "violet wright" <xsl9@xxxxxxxxxxx> Date: Sun, 12 Mar 2000 23:20:17 GMT |
</xsl:text>From: Michel CASABIANCA <casa@xxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxx To: xsl-list@xxxxxxxxxxxxxxxx CC: XSL-List@xxxxxxxxxxxxxxxx Subject: Re: sort, count, number, group Date: 12 Mar 2000 14:39:30 +0100
Hello
quagly <quagly@xxxxxxxx> writes: > After perusing the FAQ I can sort, count, number, and group. > But I cannot do them all at once. Please help. > > Example: > > xml: > > <root> > <foo> > <bar>bard</bar> > <bar>bark</bar> > </foo> > <foo> > <bar>bark</bar> > <bar>barb</bar> > </foo> > </root> > > Sample xsl that selects distinct <bar> > > <xsl:template match="//bar[not(. = following::bar)]"> > <xsl:value-of select="."/> > </xsl:template> > > produces: > > bard bark barb > > what I want is to number these, sort them, and count the number of times > they appear in the xml source > > Desired output: > > 1. barb -1 > 2. bard -1 > 3. bark -2 > > I can't seem to get there from here. Do I need to use for-each?
I did it with this stylesheet :
---------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/"> <xsl:for-each select="//bar"> <xsl:variable name="value" select="."/> <xsl:if test="count(preceding::bar[.=$value]) = 0"> <xsl:value-of select="."/><xsl:text> : </xsl:text> <xsl:value-of select="count(//bar[.=$value])"/> <xsl:text>
</xsl:if> </xsl:for-each> </xsl:template>
</xsl:stylesheet> ----------------------------
producing the following output :
bard : 1 bark : 2 barb : 1
-- +---------------------------+--------------------------------+ | Michel CASABIANCA | http://www.sdv.fr/pages/casa | | mailto:casa@xxxxxx | Articles sur Java et XML | | Développement Java et XML | Applications et Applets de Jeu | +---------------------------+--------------------------------+
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: sort, count, number, group, Michel CASABIANCA | Thread | Re: sort, count, number, group, Mark Volkmann |
XSLT Market Need, Michael Laing | Date | Re: sort, count, number, group, Mark Volkmann |
Month |