我想隐藏“imageText”,div IF字符串为空。目前,此imageText将文本叠加到具有背景颜色的图像上(文本在Umbraco中指定)。
我已经尝试过了:
<xsl:if test = "imageText" != ''">
有人可以帮我解决这个问题吗?
这是我的代码:
<td width="300" height="114" valign="top">
<div class="imageTitle">
<xsl:call-template name="getText">
<xsl:with-param name="imageText" select="$bottomImageLeftText" />
</xsl:call-template>
</div>
</td>
答案 0 :(得分:1)
文本是名为imageText
的元素,还是名为$bottomImageLeftText
的变量?好像是后者,所以请试试这个:
<td width="300" height="114" valign="top">
<xsl:if test="$bottomImageLeftText != ''">
<div class="imageTitle">
<xsl:call-template name="getText">
<xsl:with-param name="imageText" select="$bottomImageLeftText" />
</xsl:call-template>
</div>
</xsl:if>
</td>
答案 1 :(得分:0)
您需要对要传递给with-param
的值进行条件调整,而不是参数名称(在调用模板中只有有意义的)。因此将div
元素包装在
<xsl:if test="string($bottomImageLeftText)">
如果$bottomImageLeftText
的字符串值非空 - 这将包括div及其内容 - 其中包括仅包含空格的情况。如果你想要处理空格 - 只有完全空白,你可以使用
<xsl:if test="normalize-space($bottomImageLeftText)">
答案 2 :(得分:0)
我会尝试这样的事情:
<!-- Code which calls the getText template and passes the bottomImageLeftText variable -->
<xsl:call-template name="getText">
<xsl:with-param name="imageText" select="$bottomImageLeftText" />
</xsl:call-template>
<!-- getText template which checks the param imageText for an empty string. -->
<xsl:template name="getText" >
<xsl:param name="imageText" />
<xsl:if test="$imageText" >
<div class="imageTitle">
<!-- your code, display image title -->
</div>
</xsl:if>
</xsl:template>