RE: [xsl] Upon matching attribute value, increment output

Subject: RE: [xsl] 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: [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

Current Thread