xsl:choose 表达式必须评估为节点集
xsl:choose Expression must evaluate to a node-set
我正在与 C#
和 XSLT 2.0
合作。我在使用其中一个模板时遇到问题,它似乎在 <xsl:choose>
语句中失败了。传递的值是 Key
- Value
对,除了两个值之外的所有值都是小数。目的是用 2 位小数和 ,
来格式化小数,而整数应该没有小数位。
<xsl:choose>
<xsl:when test="Key='Seller count' || Key='Buyer count'">
<td>
<xsl:value-of select="format-number(Value, '0')"/>
</td>
</xsl:when>
<xsl:otherwise>
<td>
<xsl:value-of select="format-number(Value, '#,##0.00')"/>
</td>
</xsl:otherwise>
</xsl:choose>`
给我
An exception of type 'System.Xml.Xsl.XslTransformException' occurred in System.Data.SqlXml.dll but was not handled in user code
Additional information: Expression must evaluate to a node-set.
这有点令人惊讶,因为它在 when
和 otherwise
中打开和关闭 <td> </td>
。
我假设这是我没有看到的显而易见的事情。
XSLT 1.0 具有用于节点集的联合运算符 |
和用于布尔值的布尔运算符 or
。 XSLT 中没有 ||
运算符,1.0 和 2.0 中都没有。如果你想写一个布尔 or
表达式使用 <xsl:when test="Key='Seller count' or Key='Buyer count'">
.
我正在与 C#
和 XSLT 2.0
合作。我在使用其中一个模板时遇到问题,它似乎在 <xsl:choose>
语句中失败了。传递的值是 Key
- Value
对,除了两个值之外的所有值都是小数。目的是用 2 位小数和 ,
来格式化小数,而整数应该没有小数位。
<xsl:choose>
<xsl:when test="Key='Seller count' || Key='Buyer count'">
<td>
<xsl:value-of select="format-number(Value, '0')"/>
</td>
</xsl:when>
<xsl:otherwise>
<td>
<xsl:value-of select="format-number(Value, '#,##0.00')"/>
</td>
</xsl:otherwise>
</xsl:choose>`
给我
An exception of type 'System.Xml.Xsl.XslTransformException' occurred in System.Data.SqlXml.dll but was not handled in user code
Additional information: Expression must evaluate to a node-set.
这有点令人惊讶,因为它在 when
和 otherwise
中打开和关闭 <td> </td>
。
我假设这是我没有看到的显而易见的事情。
XSLT 1.0 具有用于节点集的联合运算符 |
和用于布尔值的布尔运算符 or
。 XSLT 中没有 ||
运算符,1.0 和 2.0 中都没有。如果你想写一个布尔 or
表达式使用 <xsl:when test="Key='Seller count' or Key='Buyer count'">
.