12.7 Procedures (Named Template Rules)

<?xml version="1.0" encoding="utf-8" ?>  
<xsl:stylesheet version="1.0"  
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
>  
  <xsl:template match="*">  
     <element>  
        <xsl:call-template name="cp"/>  
        <xsl:apply-templates select="*|@*|text()"/>  
     </element>  
  </xsl:template>  
 
  <xsl:template match="@*">  
     <attribute>  
        <xsl:call-template name="cp"/>  
     </attribute>  
  </xsl:template>  
 
  <xsl:template match="text()">  
     <text>  
        <xsl:call-template name="cp"/>  
     </text>  
  </xsl:template>  
 
  <xsl:template name="cp">  
     <xsl:value-of select="translate(.,'aeiou','')" />  
  </xsl:template>  
 
</xsl:stylesheet>  
<?xml version="1.0"  
      encoding="utf-8" ?>  
<all att="something">Some text.</all>  
<?xml version="1.0" encoding="UTF-8"?>  
<element>Sm txt.<attribute>smthng</attribute><text>Sm txt.</text></element>