XSLT中的choose
-when
-test
构造没有按照我所认为的方式工作。实际上,它似乎并没有做任何事情。
环境是Workday Studio。我正在对一个几个月来每晚都在运行的程序进行更改。这段代码中的结构与代码的其他部分非常相似,这就是为什么这令人费解的部分原因。
<xsl:variable name="CC_Fee_Calc">
<xsl:value-of select="number($value_from_salesforce) * number($CreditCard_RecoveryFee_Percent) * 0.01"/>
</xsl:variable>
<xsl:variable name="CC_Fee_IsZero">
<xsl:choose>
<xsl:when test="number($CC_Fee_Calc) < 0.0">
<xsl:value-of select="Y"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="N"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<CC_Fee_Calc><xsl:value-of select="$CC_Fee_Calc"/></CC_Fee_Calc>
<CC_Fee_Zero><xsl:value-of select="$CC_Fee_IsZero"/></CC_Fee_Zero>
请注意,由于<
的XML性质,因此必须使用小于号XSLT的HTML版本(第6行)。同样的事情在代码的其他地方也可以很好地工作。
最后两行仅用于显示变量的内容。他们在日志中创建以下输出(针对不同的输入数据):
<CC_Fee_Calc>150.432</CC_Fee_Calc>
<CC_Fee_Zero/>
<CC_Fee_Calc>-0.632</CC_Fee_Calc>
<CC_Fee_Zero/>
<CC_Fee_Calc>-1</CC_Fee_Calc>
<CC_Fee_Zero/>
CC_Fee_Calc
字段中的值是正确的。但对于CC_Fee_Zero
来说,就好像只是定义变量,而不是填充变量。我期望第一个示例为N,其他两个示例为Y。
https://stackoverflow.com/questions/57399825
复制相似问题