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

Subject: Re: [xsl] Upon matching attribute value, increment output
From: George Cristian Bina <george@xxxxxxx>
Date: Fri, 24 Sep 2004 10:05:22 +0300
Hi Russ,

You can count the number of preceding CON nodes with the same CODE attribute and if it is greater than zero output its value:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output method="text"/>
<xsl:template match="CON">
<xsl:value-of select="@CODE"/>
<xsl:variable name="precedingCodes" select="count(preceding-sibling::CON[@CODE=current()/@CODE])"/>
<xsl:if test="$precedingCodes > 0">
<xsl:text>_</xsl:text>
<xsl:value-of select="$precedingCodes"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>


Best Regards,
George
-----------------------------------------------
George Cristian Bina
<oXygen/> XML Editor & XSLT Editor/Debugger
http://www.oxygenxml.com

Russ Little wrote:


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



--+------------------------------------------------------------------ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/ or e-mail: <mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx> --+--

Current Thread