我试图想出一种方法,使用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位数字。我试图从左到右,但这没效果。非常感谢任何帮助。
答案 0 :(得分:1)
可能值得了解 substring-after 函数以供将来参考。如果在连字符后面有一个可变位数,这将有利于使用。在这种情况下,你可以这样做:
<xsl:value-of select="substring-after(@Text, '-')" />
在这种情况下,这也应该输出111820
。
答案 1 :(得分:0)
substring
函数的第二个参数是起始位置。您想要从length-6
位置开始接受字符。
尝试
substring(@Text, string-length(@Text) - 6)