Главная -> XML&... -> XSLT в примерах 
>> Страница 26 << | Назад | Вперед | Содержание | Указатель

Инструкция xsl:if позволяет реализовывать условные конструкции. Преобразование 1 демонстрирует типичный случай использования инструкции xsl:for-each, добавляя текст между отдельными компонентами. Однако, зачастую вы не захотите добавлять текст после последнего элемента. Здесь вам может помочь инструкция xsl-if (преобразование 2).

Преобразование 1

Исходный XML
<source>

<list>
     <entry name="A"/>
     <entry name="B"/>
     <entry name="C"/>
     <entry name="D"/>
</list>

</source>

Результат
A, B, C, D,

Представление HTML
A, B, C, D,
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="list">
     <xsl:for-each select="entry">
          <xsl:value-of select="@name"/>
          <xsl:text>, </xsl:text>
     </xsl:for-each>
</xsl:template>


</xsl:stylesheet>



Преобразование 2

Исходный XML
<source>

<list>
     <entry name="A"/>
     <entry name="B"/>
     <entry name="C"/>
     <entry name="D"/>
</list>

</source>

Результат
A, B, C, D

Представление HTML
A, B, C, D
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="list">
     <xsl:for-each select="entry">
          <xsl:value-of select="@name"/>
          <xsl:if test="not (position()=last())">
               <xsl:text>, </xsl:text>
          </xsl:if>
     </xsl:for-each>
</xsl:template>


</xsl:stylesheet>

Raleigh.ru Copyright © 2002