我有一个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>
答案 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>