There are three methods to remove leading zeros (or any other character) from a number using XSLT.
Use the number() function
number(.)
to return a string you can use
string(number(.))
Use the format-number() function
format-number(.,'#')
Use the replace() function
replace(.,'^0+','')
Try it using the following XML:
<test>
<number>0001</number>
<number>0002</number>
<number>0003</number>
<number>0011</number>
<number>0102</number>
<number>1003</number>
</test>
and the following xslt template:
<xsl:template match="test">
<number>
<xsl:for-each select="number">
<n><xsl:value-of select="number(.)"/></n>
</xsl:for-each>
</number>
<replace>
<xsl:for-each select="number">
<n><xsl:value-of select="replace(.,'^0+','')" /></n>
</xsl:for-each>
</replace>
<format>
<xsl:for-each select="number">
<n><xsl:value-of select="format-number(.,'#')"/></n>
</xsl:for-each>
</format>
</xsl:template>