0

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

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

我假设这是我看不到的显而易见的事情。

4

1 回答 1

4

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

于 2015-03-09T12:33:46.777 回答