我有一个名为channels的元素,它已在XML文件中给出了值。我想要做的是,当XML文件没有任何频道时,向用户显示一条消息。 这是我的代码。
<h2>Channels Subscription:</h2>
<xsl:template>
<xsl:if test=" <xsl:value-of select="count(subscription/channels)"/>
==0)">
<p>You have no channels</p>
</xsl:if>
</xsl:template>
上面的代码不起作用 在那之后,另一部分是桌子..当用户有一个或多个频道时,它会被显示
<xsl:for-each select="subscription/channels">
<xsl:choose>
<xsl:when test="@favourite='true'">
<h3 >Channel Name:</h3> <h3 style="color:green;"><xsl:value-of select="@name"/></h3>
</xsl:when>
<xsl:otherwise>
<h3 >Channel Name: </h3><h3 style="color:black; "><xsl:value-of select="@name"/></h3>
</xsl:otherwise>
</xsl:choose>
<p>ID: <xsl:value-of select="@id"/></p>
<h3>Programs:</h3>
<xsl:for-each select="programs">
<table ID="gradient-style">
<tbody>
<tr>
<th>Program Name:</th>
<td><xsl:value-of select="name"/></td>
</tr>
<tr>
<th>Broadcast Time:</th>
<td>
<xsl:value-of select="@broadcastFrequency"/> at <xsl:value-of select="@broadcastTime"/>
</td>
</tr>
<tr>
<th>Description:</th>
<td><xsl:value-of select="description"/></td>
</tr>
</tbody>
</table>
</xsl:for-each>
并且有效
答案 0 :(得分:1)
您的xsl:if
错了,应该是
<xsl:if test="count(subscription/channels) = 0">
<p>You have no channels</p>
</xsl:if>
供参考:http://www.w3.org/TR/xslt#section-Conditional-Processing-with-xsl%3aif