Your title suggests you aren't thinking about the problem functionally. You
don't increment things in XSLT. What you need to do is to compute a number
that depends on the element's position.
You should be able to do this using
count(preceding-sibling::CON[(_at_)CODE=current()/@CODE]). You can also do it by
setting a variable to the current @CODE and using <xsl:number
count="CON[(_at_)CODE = $thisCode]"/>.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Russ Little [mailto:russ(_dot_)little(_at_)datamaxx(_dot_)com]
Sent: 24 September 2004 05:52
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Upon matching attribute value, increment output
If I have the following XML:
<GRP>
<CON @CODE="ABC"/>
<CON @CODE="DEF"/>
<CON @CODE="ABC"/>
<CON @CODE="ABC"/>
<CON @CODE="XYZ"/>
<CON @CODE="ABC"/>
</GRP>
And I want my output to be:
ABC
DEF
ABC_1
ABC_2
XYZ
ABC_3
How would I get there? I cannot seem to manage it with
any combination of count, value-of, match, etc., and almost
all posts I see are for node values instead of attributes, or
HTML instead of text...nothing I've seen seems to give me a
valid idea to run with.
Any help would be greatly appreciated!
Thanks,
Russ