遇到xsl问题:选择标记

时间:2011-11-22 14:38:00

标签: xslt

我有一个xsl问题,我正在尝试使用xsl:choose。以下是片段。问题是<xsl:otherwise>标记总是会触发,这使我相信<xsl:when>无法正确评估。

关于我做错了什么的线索?

<xsl:choose>
  <xsl:when test="./Property[@Name ='RecoveryModel']='Full'">
    <td align="left" bgcolor="#ff00ff">
      <xsl:value-of select="./Property[@Name ='RecoveryModel']"/>
    </td>   
  </xsl:when>
  <xsl:otherwise>
    <td><xsl:value-of select="./Property[@Name ='RecoveryModel']"/></td>
  </xsl:otherwise>
</xsl:choose>   

1 个答案:

答案 0 :(得分:1)

尝试将[1]添加到<xsl:when>测试中,如下所示:

<xsl:choose>
  <xsl:when test="./Property[@Name ='RecoveryModel'][1]='Full'">
    <td align="left" bgcolor="#ff00ff">
      <xsl:value-of select="./Property[@Name ='RecoveryModel']"/>
    </td>   
  </xsl:when>
  <xsl:otherwise>
    <td><xsl:value-of select="./Property[@Name ='RecoveryModel']"/></td>
  </xsl:otherwise>
</xsl:choose>

否则,./Property[@Name ='RecoveryModel']选择器将返回(基本上)匹配元素的列表(希望在您的情况下只有一个。您需要[1]来选择第一个匹配的Property元素。< / p>


另外,我假设你的源元素看起来像:

<node>
  <Property Name="RecoveryModel">Full</Property>
<node>