First attempt was rather verbose and had unneeded calls to string() and
translate()
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:for-each-group select="tokenize(lower-case(.),'(\s|[,.!:;])+')[string(.)]"
group-by=".">
<xsl:sort select="- count(current-group())"/>
<xsl:value-of select="concat(.,' - ',string(count(current-group())),' ')"/>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list