Subject: RE: Upon matching attribute value, increment output
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 24 Sep 2004 08:09:37 +0100
|
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[@CODE=current()/@CODE]). You can also do it by
setting a variable to the current @CODE and using <xsl:number
count="CON[@CODE = $thisCode]"/>.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Russ Little [mailto:russ.little@xxxxxxxxxxxx]
> Sent: 24 September 2004 05:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: 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
|