xsl-list
[Top] [All Lists]

[xsl] first n nodes from a current-group

2008-02-07 06:23:20
Hi All,

I did a transformation of a XML file.The description is given below-

input XML 

<?xml version="1.0" encoding="ISO-8859-1"?>
<School>
<student rec='1'>
<name>Robart J</name>
</student>
<student rec='2'>
<name>Alex M; Peter R; Robart J</name>
</student>
<student rec='3'>
<name>Alex M;Robart J; Dave T</name>
</student>
<student rec='4'>
<name>Alex M;Robart J; Peter R</name>
</student>
</School>

XSLT , I used-

<School>
<xsl:for-each-group select=" School/student group-by="name/tokenize(.,
';\s*')">
<xsl:sort data-type="number" select="count(current-group())"
order="descending" /> 
<xsl:sort select="current-grouping-key()"/>
<xsl:for-each select="current-group()" >
<xsl:if test="position()=2">
<name count="{count(current-group())}">
<xsl:value-of select="current-grouping-key()"/>
</name>
</xsl:if>
</xsl:for-each>
</xsl:for-each-group>
</School>

I m getting output like-
<School>
<name count='4'>Robart J</name>
<name count='3'>Alex M</name>
<name count='2'>Peter R</name>
</School>

That is all the name elements having more than or equal to 2 count
value. 

But I wanted only the first two name elements having highest counts.
that is output like:


<School>
<name count='4'>Robart J</name>
<name count='3'>Alex M</name>
</School>

Please help me to do the same.
Thanks in advance.

Manish


DISCLAIMER:
This email (including any attachments) is intended for the sole use of the 
intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE 
COMPANY INFORMATION. Any review or reliance by others or copying or 
distribution or forwarding of any or all of the contents in this message is 
STRICTLY PROHIBITED. If you are not the intended recipient, please contact the 
sender by email and delete all copies; your cooperation in this regard is 
appreciated.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>