我有if test
我希望在属性有值时用逗号显示'year'属性的内容。这不行,所以我会感谢你的建议。
<xsl:if test="year != null">
<xsl:value-of select="year"/>,
</xsl:if>
答案 0 :(得分:9)
您可以使用以下表达式检查year
元素的存在:
<xsl:if test="year">
如果要检查year
元素是否为空:
<xsl:if test="year != ''">
答案 1 :(得分:0)
<xsl:if test="year != null"> <xsl:value-of select="year"/>, </xsl:if>
如果当前节点至少有一个true()
子节点,并且当前节点的一个year
子节点的字符串值不相等,则为null
。
很可能XML文档中没有任何null
元素没有显示...
使用强>:
<xsl:if test="year">
<xsl:value-of select="concat(year, ',')"/>
</xsl:if>
答案 2 :(得分:0)
我更喜欢使用not函数
not()函数—返回其参数的取反。如果该参数还不是布尔值,则使用boolean()函数条目中描述的规则将其转换为布尔值。
示例:
为了演示not()函数,我们将使用与boolean()函数相同的样式表和XML文档。
<xsl:choose>
<xsl:when test="not(year='')">
<xsl:value-of select="year"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>The element year is NULL</xsl:text>
<xsl:otherwise>
</xsl:choose>
与if语句相同:
<xsl:if test="not(year='')">
<xsl:value-of select="year"/>
</xsl:if>
<xsl:if test="year=''">
<xsl:text>The element year is NULL</xsl:text>
</xsl:if>