首页 > 解决方案 > XSLT 模板 - 文本输出文件使用 in

问题描述

下面是示例 XSLT 代码

<xsl:choose>
  <xsl:when test="(TargetBonus &gt;= 0)"><xsl:value-of select="TargetBonus"/></xsl:when>
  <xsl:otherwise>Main</xsl:otherwise>
</xsl:choose> 

上面的逻辑我得到的错误如下:

无法将字符串“”转换为双精度

我无法找到确切的问题

标签: xslt

解决方案


您的输入中有一个空<TargetBonus>元素。这将导致测试TargetBonus >= 0失败并出现类型转换错误。

显式转换为数字。

<xsl:when test="number(TargetBonus) &gt;= 0]">...</xsl:when>

这会将任何无效值(包括空字符串)转换为NaN,然后可以进行比较。NaN >= 0将导致false,这可能是您所期望的。


推荐阅读