cleartext.blogspot.com
BIP has a distinct function
xdoxslt:distinct_values
If you use it on a node of elements, it returns a space separated sequence of its distinct elements.
Eg: for this xml:
cleartext.blogspot.com
<ROWSET>
<ROW>
<CwaProductCode>001</CwaProductCode>
</ROW>
<ROW>
<CwaProductCode>002</CwaProductCode>
</ROW>
<ROW>
<CwaProductCode>001</CwaProductCode>
</ROW>
<ROW>
<CwaProductCode>003</CwaProductCode>
</ROW>
</ROWSET>
cleartext.blogspot.com
Using <?xdoxslt:distinct_values(CwaProductCode)?> gives:
001 002 003
Using <?count(xdoxslt:distinct_values(CwaProductCode))?> gives:
3
But what if one needs to group by the distinct values, and then count the number of elements under it ? Then distinct can’t help.
cleartext.blogspot.com
<?for-each-group:ROW;./CwaProductCode?>
<?CwaProductCode?><?'-'?><?count(current-group()/.)?>
<?end for-each-group?>
Gives the answer:
001-2
002-1
003-1
cleartext.blogspot.com
cleartext.blogspot.com