Hi Stuart,
it works perfectly, thank you a lot!
Elena
Stuart Brown wrote:
Hi Elena,
Try this
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:key name="persNames" match="persName" use="."/>
<xsl:template match="/">
<xsl:for-each select="root//persName[not(.=preceding::persName)]">
<xsl:sort select="."/>
<xsl:value-of select="concat(.,' ',count(key('persNames',.)))"/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:transform>
This creates a key, which is essentially a list of all the nodes that match
the match= attribute expression (in this case, all the persName elements),
and then indexes them by their contect (use=".").
The for-each instruction then selects all the persNames which do not equal a
preceding occurrence of persName (i.e. a uniqued list). I've added a sort
for alphabetical ordering. Finally, it outputs the value of the element
itself, a space, and then uses the key to count the number of persName
elements that have the same content.
Hope this helps,
Stuart
-----Original Message-----
From: Elena Pierazzo [mailto:pierazzo(_at_)ital(_dot_)unipi(_dot_)it]
Sent: 19 September 2003 08:36
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] how getting a list of occurences
Hi all,
I firstly apologize for my beginner's question.
I've an XML document like this
<root>
....
...
<p>
<persName>pippo</persName>
...
<persName>pluto</persName>
...
<persName>pippo</persName>
...
<persName>ciccio</persName>
....
</p>
....
....
</root>
I would like to get as an output a list of all the occurences of the
<persName> element and the number of time that the form occours, like that:
pippo 2
pluto 1
ciccio 1
I've tryed to do this using <xsl:number> as follow:
<xsl:template match="p">
<xsl:for-each select="persName">
<br />
<xsl:value-of select="." />:
<xsl:number count="*" value="???">
</xsl:number>
</xsl:for-each>
</xsl:template>
but I'm unable to complete the expression required by the value attribute.
Thank you in advance
Elena Pierazzo
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list