I have an xml doc :
<xml>
<staff>
<seq_no num="0">0</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="1">1</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="1">2</seq_no>
<name>abc</name>
</staff>
<staff>
<seq_no num="3">3</seq_no>
<name>abc</name>
</staff>
</xml>
I want to add number to seq_no/@num if any of the seq_no are same. if there is no duplicate then nothing will get added.
The out put of above should be:
<xml>
<staff>
<seq_no num="[1]1">0</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="[2]1">1</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="[3]1">2</seq_no>
<name>abc</name>
</staff>
<staff>
<seq_no num="[4]3">3</seq_no>
<name>abc</name>
</staff>
</xml>
added [1],[2],[3],[4] respectively to seq_no/@num. I started the work with match template like this
<xsl:template match="seq_no/num">
<seq_no>
<xsl:attribute name="num">
<xsl:text>[</xsl:text><xsl:number select="." format="1" level="any" /><xsl:text>]</xsl:text>
<xsl:value-of select="@num"></xsl:value-of>
</xsl:attribute>
<xsl:value-of select="."></xsl:value-of>
</seq_no>
</xsl:template>
but getting trouble when controling the postion as well as how to check the duplicate num for other seq_no...
Input without any duplicate num:
<xml>
<staff>
<seq_no num="0">0</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="1">1</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="2">2</seq_no>
<name>abc</name>
</staff>
<staff>
<seq_no num="3">3</seq_no>
<name>abc</name>
</staff>
</xml>.
Output should be same as input no processing requried.
<xml>
<staff>
<seq_no num="0">0</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="1">1</seq_no>
<name>xyz</name>
</staff>
<staff>
<seq_no num="1">2</seq_no>
<name>abc</name>
</staff>
<staff>
<seq_no num="3">3</seq_no>
<name>abc</name>
</staff>
</xml>