Xml 为什么xsl:when和xsl:value在这里不起作用?
当XSLT中的-Xml 为什么xsl:when和xsl:value在这里不起作用?,xml,testing,xslt,Xml,Testing,Xslt,当XSLT中的-测试构造没有按我认为应该的方式运行时,选择-。实际上,它似乎什么也没做 环境是Workday Studio。我正在对一个已经每晚运行了几个月的程序进行修改。这段代码中的结构与代码的其他部分非常相似,这就是为什么这令人困惑的部分原因 <xsl:variable name="CC_Fee_Calc"> <xsl:value-of select="number($value_from_salesforce) * number($CreditCard_Recov
测试
构造没有按我认为应该的方式运行时,选择
-。实际上,它似乎什么也没做
环境是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>
请注意,小于号的HTML版本会发生更改
<xsl:value-of select="Y"/>
功劳:感谢您提出的简化建议。代码的另一个有用简化是替换
<xsl:variable name="CC_Fee_Calc">
<xsl:value-of select="number($value_from_salesforce) * number($CreditCard_RecoveryFee_Percent) * 0.01"/>
</xsl:variable>
借
第二个版本计算一个数字并将其绑定到变量。您的版本计算数字,将其转换为字符串,创建包含此字符串的文本节点,创建文档节点作为此文本节点的父节点,并将其绑定到变量。然后,当您执行number($CC\u Fee\u Calc)
时,它必须找到文档节点的字符串值,这意味着导航到文本节点,从文本节点提取字符串,并将其转换回数字。这样你就可以写三行代码而不是一行。当我吹毛求疵时:0.0
是写0
的冗长方法。
<xsl:value-of select="'Y'"/>
<xsl:when test="number($CC_Fee_Calc) < 0.0">Y</xsl:when>
<xsl:otherwise>N</xsl:otherwise>
<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_Calc"
select="number($value_from_salesforce) * number($CreditCard_RecoveryFee_Percent) * 0.01"/>