如何从xslt中的字符串中提取数字?

how to extract digit from string in xslt?

我在 xslt 中有一个变量。它的值为 /photo/12345.text。我想从给定的变量中提取 12345。我们有类似 lastIndex 或 [=14 的函数吗? =] 在 xslt 中以便我将从该字符串中提取该值

这是我的代码 http://xsltransform.net/gWEamLq/2

<xsl:template match="@*|node()">
    <xsl:variable name="var1" select="'/photo/12345.text'"/>
    <xsl:value-of  select="$var1"/>
</xsl:template>

预期结果 一个值为“12345”的变量

在 XSLT 2.0 中,您可以:

<xsl:value-of select="substring-before(tokenize($var1, '/')[last()], '.')"/>

得到12345.


演示:http://xsltransform.net/gWEamLq/4

在 XSLT 1.0 中(问题被标记为两者?)您可以使用 translate()...

<xsl:value-of select="translate($var1,translate($var1,'0123456789',''),'')"/>

示例:http://xsltransform.net/gWEamLq/6