12.6 Attribute Value Templates

<?xml version="1.0" encoding="utf-8" ?>  
<xsl:stylesheet version="1.0"  
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
>  
  <xsl:template match="*">  
     <xsl:variable name="name"  
                 select="name()" />  
     <xsl:variable name="length"  
                 select="string-length($name)" />  
     <xsl:variable name="name"  
                 select="concat($name, '-', $length)" />  
     <xsl:element name="{$name}" >  
        <xsl:apply-templates />  
     </xsl:element>  
  </xsl:template>  
</xsl:stylesheet>  
<?xml version="1.0"  
      encoding="utf-8" ?>  
<a> <bb> <ccc/> </bb> <dd/> </a>  
<?xml version="1.0" encoding="UTF-8"?>  
<a-1> <bb-2> <ccc-3/> </bb-2> <dd-2/> </a-1>