Hi Joseph, what about this?
let $input := <c> <a>red</a> <a>red</a> <a>blue</a> <a>green</a> <a>green</a> </c>
return <c>{ for $a in $input/* let $t := $a/text() group by $t return for $a2 at $pos in $a return <a n="{$pos}">{$a2/text()}</a> }</c>
Ciao, M.
On 27/01/2017 09:08, meumapple wrote:
Hi,
I have a structure like this:
<c> <a>red</a> <a>red</a> <a>blue</a> <a>green</a> <a>green</a> </c>
And I would like to get:
<c> <a n="1">red</a> <a n="2">red</a> <a n="1">blue</a> <a n="1">green</a> <a n="2">green</a> </c>
I have tried with two for loops after having identified the distinct-values(). This is in principle correct but it takes too long (I have many distinct values and a elements), because I cannot exit the for loop as soon as I get a match. I have been able to get the result with the window clause and then counting the elements of the window with a nested for-loop: is there an alternative solution? Thanks.
Joseph