XSLT显示图片或显示空白

时间:2011-03-02 13:17:10

标签: xslt sharepoint-2010

我创建了一个自定义xslt样式以在我的网站上显示新闻。我的问题是,我的一些新闻有一个横幅,有些没有。那么如何通过使用XSLT来确定如何使用横幅显示新闻或者如果没有横幅广告则不显示新闻?

我知道哪个字段包含横幅网址。所以我可以想象我必须遍历我的新闻,然后通过某种if语句的返回值加载显示表单,该语句检查新闻是否有横幅。

我是XSLT的新手,所以我该怎么做?任何帮助都是适当的。

3 个答案:

答案 0 :(得分:1)

我认为你可以使用这样的东西:

<xsl:choose>
  <xsl:when test="not(empty(imageurlfield))">
    <!-- Display with image here -->
  </xsl:when>

  <xsl:otherwise>
    <!-- Display without image here -->
  </xsl:otherwise>
</xsl:choose>

答案 1 :(得分:0)

您可以使用xsl:if标记来测试某些xpath存在:

<xsl:if test="./@banner">
    <p class="banner"><xsl:value-of select="./@banner" /></p>
</xsl:if>

答案 2 :(得分:0)

只需指定两个模板,一个用于带有横幅的新闻项目,另一个用于没有。

<xsl:template match="newsitem[banner]">
  <!-- pattern for news items with a banner -->
</xsl:template>

<xsl:template match="newsitem">
  <!-- pattern for news items without a banner -->
</xsl:template>

上面的示例假设新闻项目包含在名为newsitem的元素中,子元素banner包含有关横幅的数据(如果有)。此处的第二个模板取代了包含newsitem子项的banner元素的第一个模板。