Define and use attribute-set
File: Data.xml
<?xml version="1.0"?>
<countries>
<country name="France" />
<country name="Germany" />
<country name="Israel" />
<country name="Japan" />
<country name="Poland" />
<country name="United States" selected="yes" />
<country name="Venezuela" />
</countries>
File: Transform.xslt
<?xml version="1.0"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:strip-space elements="*" />
<xsl:output method="xml" indent="yes" />
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="line">
<xsl:copy use-attribute-sets="sequence">
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:attribute-set name="sequence">
<xsl:attribute name="number" select="position()" />
<xsl:attribute name="of" select="last()" />
</xsl:attribute-set>
</xsl:transform>
Output:
<?xml version="1.0" encoding="UTF-8"?>
<countries>
<country/>
<country/>
<country/>
<country/>
<country/>
<country/>
<country/>
</countries>
Related examples in the same category