XSLT选择 - 如果为空,则尝试隐藏变量

时间:2014-05-22 13:29:56

标签: variables xslt hide

我在XSLT中创建了这个变量:

如果用户未在CMS中输入内容,我想隐藏它。我在XSLT中添加了一个CHOOSE声明,但发现我无法使用' style'在变量上。我是XSLT的新手。

以下代码......

<table>
     <tr>
          <td>
               <xsl:choose>
                    <xsl:when test="not($thirdBlogPost)"> 
                         <xsl:variable name="thirdBlogPost" style="display:none"/>
                         <!--Use of 'style' on a variable isn't allowed-->
                    </xsl:when>
                    <xsl:otherwise> <!--parameter has been supplied --> </xsl:otherwise>
          <td><img src="images/{$thirdBlogPost/@Image}" class="blog-front-image" /></td>
          <td>
               <h1><xsl:value-of select="$thirdBlogPost/@Title"/></h1>
               <xsl:value-of select="$thirdBlogPost/@Abstract" disable-output-escaping="yes"/>  
               <br />
               <a href="{$thirdBlogPost/@URL}">Read more...</a>
          </td>
               </xsl:choose>
     </tr>
</table>

2 个答案:

答案 0 :(得分:0)

XSLT标记由您用于执行XSLT转换的任何内容处理 - 它们不会显示为HTML的一部分(它们不会显示)。
所以不需要 style 属性 - 该变量在网页上不可见。

答案 1 :(得分:0)

xsl:variable的语法是

<xsl:variable name = QName select = Expression </xsl:variable>

因此,如果您尝试使用值display:none定义变量,则需要编写(注意,因为该属性包含文字字符串,所以字符串必须在引号内):

<xsl:variable name = "thirdBlogPost" select = "'display:none'" </xsl:variable>

你可以使用这样的值:

<div style="{$thirdBlogPost}">this won't display</div>