XSLT показать картинку или показать пустым - PullRequest
0 голосов
/ 02 марта 2011

Я создал собственный стиль xslt для отображения новостей на моем сайте.Моя проблема в том, что некоторые из моих новостей имеют баннер, а некоторые нет.Итак, как мне определить с помощью XSLT, как отображать новости с баннером или без него, если его нет?

Я знаю, в каком поле содержится URL-адрес баннера.Поэтому я могу представить, что мне нужно просмотреть свои новости, а затем загрузить форму отображения по возвращаемому значению из какого-то оператора if, который проверяет, есть ли в новостях баннер или нет.XSLT так как мне это сделать?Любая помощь ценится.

Ответы [ 3 ]

1 голос
/ 02 марта 2011

Я думаю, вы можете использовать что-то вроде этого:

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

  <xsl:otherwise>
    <!-- Display without image here -->
  </xsl:otherwise>
</xsl:choose>
0 голосов
/ 02 марта 2011

Просто укажите два шаблона, один для новостей с баннером, а другой без.

<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 дочерний элемент.

0 голосов
/ 02 марта 2011

Вы можете использовать тег xsl: if для проверки существования xpath:

<xsl:if test="./@banner">
    <p class="banner"><xsl:value-of select="./@banner" /></p>
</xsl:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...