XSLT 1.0 字符串长度 - 2
XSLT 1.0 String Length - 2
我需要检查一个字段的长度然后在最后两个之前添加.
数字。
示例: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>
有什么帮助吗?
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>
我认为您的代码运行良好。
只需将这一行替换为现有的行即可:
<xsl:value-of select="concat(substring(ns0:Amount, 1, ($VARAmtLength - 2)),'.', substring(ns0:Amount, ($VARAmtLength - 1), 2))" />
1. 减法运算符'-'周围应该有一个space。否则它将认为 $VARAmtLength-
作为变量名。
2. 您错放了第二个 substring()
函数的圆括号。
我需要检查一个字段的长度然后在最后两个之前添加.
数字。
示例: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>
有什么帮助吗?
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>
我认为您的代码运行良好。
只需将这一行替换为现有的行即可:
<xsl:value-of select="concat(substring(ns0:Amount, 1, ($VARAmtLength - 2)),'.', substring(ns0:Amount, ($VARAmtLength - 1), 2))" />
1. 减法运算符'-'周围应该有一个space。否则它将认为 $VARAmtLength-
作为变量名。
2. 您错放了第二个 substring()
函数的圆括号。