XSLT 1.0字符串长度-2

时间:2019-03-18 07:39:10

标签: xslt xslt-1.0 string-length

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

示例:Amount的值为0001234567,将其替换为00012345.67。这里的字符串长度为10。

但是命令失败,并且无法从
检索值 ($VARAmtLength-2)($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>

有帮助吗?

2 个答案:

答案 0 :(得分:1)

我认为您的代码运行正常。

只需将这一行替换为现有的:

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

1。。减法运算符“-”周围应有一个空格。否则,它将$VARAmtLength-作为变量名。

2。。您将第二个substring()函数的圆括号放错了位置。

答案 1 :(得分:-1)

XML

<amount>0001234567</amount>

Xsl

<xsl:template match="/">
    <xsl:variable name="length" select="//amount"/>
    <xsl:if test="$length>0">
    <amount>
        <xsl:variable name="ajeet" select="concat(substring(//amount, 1, 8), '.')"/>
        <xsl:variable name="kumar" select="substring(//amount, 9, 2)"/>
        <xsl:value-of select="concat($ajeet, $kumar)"/>
    </amount>
    </xsl:if>
</xsl:template>