首页 > 解决方案 > XSLT 1.0 字符串长度 - 2

问题描述

我需要检查一个字段的长度,然后.在最后两位数字之前添加。

示例: 的值为,Amount0001234567替换为00012345.67。这里的字符串长度为 10。

但是该命令失败并且无法从
($VARAmtLength-2)or中检索值($VARAmtLength-1)

我的代码如下:

<xsl:variable name="VARAmtLength" select="string-length (ns0:Amount )"/>
<xsl:if test=" ($VARAmtLength> 0)">
    <tns:Amount>            
        <xsl:value-of select="concat(substring(ns0:Amount, 1, ($VARAmtLength- 2)),'.', substring(ns0:Amount, ($VARAmtLength-1, 2)))"/>
    </tns:Amount>
</xsl:if>

有什么帮助吗?

标签: xsltxslt-1.0string-length

解决方案


我认为您的代码运行良好。

只需将此行替换为现有行:

<xsl:value-of select="concat(substring(ns0:Amount, 1, ($VARAmtLength - 2)),'.', substring(ns0:Amount, ($VARAmtLength - 1), 2))" />

1.减法运算符'-'周围应该有一个空格。否则它将被$VARAmtLength-视为变量名。

2.substring()你把第二个函数的圆括号放错了位置。


推荐阅读