使用XSL输出最后6位数字

时间:2013-03-14 13:57:58

标签: xml xslt

我试图想出一种方法,使用XSL输出以下字段的最后6位数

<NameReference Text="4380.401.0500-111820" />

我根据xml文件编写了以下表达式:

<xsl:if test="">
<xsl:for-each select="NameReference">
<ID>
<Data>
<xsl:value-of select="substring(@Text,-6)"/>
</Data>
</ID>
</xsl:for-each>
</xsl:if>

但是,输出如下“43804010500111820”。它基本上将整个字段解析为所需数据,其中我只查找短划线' - '后的最后6位数字。我试图从左到右,但这没效果。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

可能值得了解 substring-after 函数以供将来参考。如果在连字符后面有一个可变位数,这将有利于使用。在这种情况下,你可以这样做:

 <xsl:value-of select="substring-after(@Text, '-')" />

在这种情况下,这也应该输出111820

答案 1 :(得分:0)

substring函数的第二个参数是起始位置。您想要从length-6位置开始接受字符。

尝试

substring(@Text, string-length(@Text) - 6)