XSLT两值相减功能失效问题咨询
解决XSLT中数值减法不生效的问题
哦,我一眼就瞅见问题所在啦!你写的减法表达式格式完全不对,这才导致计算压根没起作用😅
问题根源
你把减法运算符-和第二个节点的引用写到了select属性的外面,还把Reduction用引号括起来当成了字符串——这完全不符合XPath的语法规则。XSLT的select属性需要把完整的计算逻辑放在引号内部,直接引用XML节点来进行数值运算。
修正后的代码
把第三列的代码改成这样就好:
<TD><xsl:value-of select="MaxTaxFreeValue - Reduction"/></TD>
这样XPath会自动尝试将MaxTaxFreeValue和Reduction两个节点的文本内容转换为数值,然后执行减法计算。
额外的健壮性建议
如果这两个节点的内容可能包含非数字字符(比如空格、单位符号),最好用number()函数显式转换类型,避免出现计算错误或者得到NaN的结果:
<TD><xsl:value-of select="number(MaxTaxFreeValue) - number(Reduction)"/></TD>
举个例子:如果MaxTaxFreeValue的内容是1500,Reduction是300,修正后的代码会输出1200,完美实现你要的减法功能~
内容的提问来源于stack exchange,提问作者blue
相关产品推荐
相关产品推荐

