xsl:选择 表达式必须计算为节点集

本文关键字:计算 节点 点集 选择 表达式 xsl | 更新日期: 2024-11-07 00:13:17

我正在与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.

这有点令人惊讶,因为它在whenotherwise中打开和关闭<td> </td>

我假设这是显而易见的事情,我没有看到。

xsl:选择 表达式必须计算为节点集

XSLT 1.0 具有处理节点集的联合运算符|和处理布尔值的布尔or运算符。XSLT 中没有||运算符,无论是在 1.0 中还是在 2.0 中都没有。如果要编写布尔or表达式,请使用 <xsl:when test="Key='Seller count' or Key='Buyer count'">