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[(_at_)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