<xsl:call-template name="SetNetTemplate">
<xsl:with-param name="xyz" select="$node1value
+ $node2value
+ $node3value
- $node4value
- $node5value
- $node6value"/>
</xsl:call-template>
Run Code Online (Sandbox Code Playgroud)
如果nodevalue为空或空白,我想用0(零)替换该值.问题是,在此计算中,如果任何nodevalue为空或空白,则它给出NaN结果.例如选择"10-2 + 5-2- -4"
试试这种方式:
<xsl:with-param name="xyz" select="translate(number($node1value), 'aN', '0')
+ translate(number($node2value), 'aN', '0')
+ translate(number($node3value), 'aN', '0')
...
- translate(number($node6value), 'aN', '0')"/>
Run Code Online (Sandbox Code Playgroud)
编辑
请注意,上面只是一个"可爱的技巧",旨在避免这样做的正确和直接的解决方案的冗长:
<xsl:choose>
<xsl:when test="number($node1value)">
<xsl:value-of select="$node1value" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="0" />
</xsl:otherwise>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)
在尝试将它们视为数字之前,对每个操作数进行操作.