This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: counting nodes based on text within
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: Re: [xsl] counting nodes based on text within
- From: Jörg Heinicke <joerg dot heinicke at gmx dot de>
- Date: Tue, 23 Oct 2001 23:29:33 +0200
- References: <F93D68694D76D31196E8005004EC7BFB43893B@CITG0NT2>
- Reply-To: xsl-list at lists dot mulberrytech dot com
If you know the values of choices, you can do the following:
<xsl:value-of select="count(/thexml/line/choice[.='item a'])"/>
A more generic version you can have with keys. My example uses the Muenchian
Method (http://www.jenitennison.com/xslt/grouping/muenchian.xml).
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:key name="choices" match="choice" use="text()"/>
<xsl:template match="thexml">
<xsl:for-each select="line/choice[count(.|key('choices',text())[1])=1]">
<xsl:value-of select="text()"/>
<xsl:value-of select="count(key('choices',text()))"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Hope this helps,
Joerg
----- Original Message -----
From: "Nouwens, H.J.P." <H.J.P.Nouwens@CiTG.TUDelft.NL>
To: <xsl-list@lists.mulberrytech.com>
Sent: Tuesday, October 23, 2001 3:51 PM
Subject: [xsl] counting nodes based on text within
> Hi there, can you help me?
> I have a piece of xml like this. I want to convert it to al list (table)
of
> date, email adresses and choice. That I can do, that's easy.
> Now I want to start of the page with a summary like:
>
> number of people choose "item a" is 2
> number of people choose "item b" is 1
>
> The number of choices is limited to 5. I'm willing to duplicate a piece of
> code 5 times :-) But a generic solution will surely be nicer...
>
> Thanks!
>
> <thexml>
> <line date="10-22-2001,11:32:01">
> <Email>h.j.p.nouwens@citg.tudelft.nl</Email>
> <choice>item a</choice>
> </line>
> <line date="10-22-2001,11:33:04">
> <Email>h.j.p.nouwens@citg.tudelft.nl</Email>
> <choice>item b</choice>
> </line>
> <line date="10-22-2001,11:36:26">
> <Email>J.Jansen@citg.tudelft.nl</Email>
> <choice>item a</choice>
> </line>
> </thexml>
>
> Hans Nouwens
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list