我分别定义了两个模板。当我单独打电话给他们每个人时,我得到了正确的值。 但是当我添加它们时,值显示为 NAN。
总毛重:33.00 1,261.98 NaN
任何人都可以帮我吗!
样本参考:
<xsl:variable name="A1">
<xsl:call-template name="AWeight">
<xsl:with-param name="nodes" select="cXML/A1/A2/A3/P1[PCode='aux']"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="A2">
<xsl:call-template name="BWeight">
<xsl:with-param name="nodes" select="cXML/B1/B2/B3/"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$A1"/><xsl:value-of select="$A2"/>
<xsl:value-of select="number($A1) + number($A2)"/>
看来您的命名模板(您没有向我们展示!)被编程为返回一个格式化数字,例如
1,261.98
。
包含逗号千位分隔符的值不是数字,无法使用
number()
函数转换为数字。
告诉模板返回未格式化的数字并仅在将其写入输出时对其进行格式化,或者在尝试在算术运算中使用该值之前使用
translate()
函数删除逗号。