1

我想隐藏“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>
4

3 回答 3

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>
于 2013-03-11T10:42:10.663 回答
0

您需要以传递给 的值为条件with-param,而不是参数名称(仅被调用模板中有意义)。所以将div元素包装在一个

<xsl:if test="string($bottomImageLeftText)">

$bottomImageLeftText如果字符串值为非空,这将包括 div 及其内容——包括它仅包含空格的情况。如果您想将仅空白视为完全空,您可以使用

<xsl:if test="normalize-space($bottomImageLeftText)">
于 2013-03-11T10:46:05.807 回答
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>
于 2013-03-11T10:48:04.650 回答