Вы можете использовать tokenize и substring-before в функции сборки для достижения желаемого выхода:
ПРИМЕР ВХОДА:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<exp>www.example.com/content/index.html</exp>
</body>
ПРИМЕР XSLT:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="exp">
<span transId="gadget_{position()}">
<xsl:value-of select="substring-before(tokenize(., '/')[last()],'.')" />
</span>
</xsl:template>
</xsl:transform>
ПРИМЕР ВЫХОДА:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<span transId="gadget_2">index</span>
</body>