Я создаю блог-сайт для школьного проекта. Содержание сообщения в блоге состоит из ряда элементов, каждый из которых может быть либо простым текстом, ссылками, изображениями или видео. Все эти элементы должны отображаться в том порядке, в котором они хранятся в файле XML, и каждый из них будет отображаться в новом теге <p>
.
Следовательно, идея состоит в том, чтобы каким-то образом зациклить все эти элементы, и каждая итерация должна выполнять `xsl:choose
, чтобы решить, как отображать элемент текущей итерации.
Возьмем, к примеру, этот код: как заставить его выполнять только часть TEXT, когда элемент имеет тип b:blogPostContent/b:blogPostText
, и часть LINK, когда элемент имеет тип b:blogPostContent/b:blogPostLink
?
<xsl:for-each select="b:blogPostContent/*">
<p>
<!--TEXT-->
<xsl:value-of select="."/>
<!--LINK-->
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="./@target"/>
</xsl:attribute>
<xsl:attribute name="target">
_blank
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</p>
</xsl:for-each>