У меня есть .xml, который мне нужно отобразить с помощью XSL.Теперь сущности в XML - это видео с тегами.Не уверен, что это важно, но видео может иметь несколько тегов.
Цель: Что мне нужно сделать, это показать (для конкретной страницы) все элементы, имеющие тег "cat1 "например.Это достаточно просто, я просто использую if:
<xsl:if test="tag[. ="cat1"]">
Однако, он также не должен перечислять h1-тег, если нет элементов, помеченных как «cat1» - которые должны отображаться толькоЕСЛИ есть видео с тегом "cat1".
Проблема: Если есть видео с "cat1", нет проблем.Если видео с тегом «cat1» НЕТ, присутствует тег h1, но нет видео.Это, очевидно, неприемлемо.
Таким образом, возникает вопрос:
Как сначала отфильтровать видеоэлементы, проверив их теги, и только после проверки того, что еще осталось видео, отобразитеостаток кода?
Вот код для xml:
<videos>
<video>
<title>Video title</title>
<subtitle></subtitle>
<description_long>
<![CDATA[Description]]>
</description_long>
<link language="English">http://URL here</link>
<tag>cat1</tag>
</video>
</demos>
Вот код для .xsl, который я пробовал:
<xsl:template match="/">
<xsl:for-each select="videos/video">
<xsl:sort data-type="text" order="ascending" />
<xsl:if test="tag[. ="cat1"]">
<h1>Category 1 videos</h1>
<div class="video">
<xsl:value-of select="title" />
</div>
</xsl:if>
</xsl:choose>
</xsl:for-each>
</xsl:template>