циклы в xsl
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



циклы в xsl Expand / Collapse
Автор
Сообщение
16.07.2004 17:02
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.07.2004 11:20
Сообщ.: 1, Visits: 12
как создать в xsl цикл($i=1..$count) для вывода

<option value="1">1</option>
<option value="2">2</option>
...
<option value="{$i}"><xsl:value-of select="$i"></option>
...
<option value="{$count}"><xsl:value-of select="$count"></option>
Сообщ. #828688
16.07.2004 19:02
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
С помощью рекурсивных шаблонов:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template name="select">
<xsl:param name="max">1</xsl:param>

<select>
<xsl:call-template name="option">
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</select><br/>
</xsl:template>

<xsl:template name="option">
<xsl:param name="cur">1</xsl:param>
<xsl:param name="max">1</xsl:param>

<xsl:if test="$cur &lt;= $max">
<xsl:element name="option">
<xsl:attribute name="value"><xsl:value-of select="$cur" /></xsl:attribute>
<xsl:value-of select="$cur" />
</xsl:element>

<xsl:call-template name="option">
<xsl:with-param name="cur" select="$cur + 1" />
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</xsl:if>
</xsl:template>

<xsl:template match="/">
<xsl:call-template name="select" />

<xsl:call-template name="select">
<xsl:with-param name="max" select="3" />
</xsl:call-template>
</xsl:template>

</xsl:stylesheet><?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template name="select">
<xsl:param name="max">1</xsl:param>

<select>
<xsl:call-template name="option">
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</select><br/>
</xsl:template>

<xsl:template name="option">
<xsl:param name="cur">1</xsl:param>
<xsl:param name="max">1</xsl:param>

<xsl:if test="$cur &lt;= $max">
<xsl:element name="option">
<xsl:attribute name="value"><xsl:value-of select="$cur" /></xsl:attribute>
<xsl:value-of select="$cur" />
</xsl:element>

<xsl:call-template name="option">
<xsl:with-param name="cur" select="$cur + 1" />
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</xsl:if>
</xsl:template>

<xsl:template match="/">
<xsl:call-template name="select" />

<xsl:call-template name="select">
<xsl:with-param name="max" select="3" />
</xsl:call-template>
</xsl:template>

</xsl:stylesheet><?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template name="select">
<xsl:param name="max">1</xsl:param>

<select>
<xsl:call-template name="option">
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</select><br/>
</xsl:template>

<xsl:template name="option">
<xsl:param name="cur">1</xsl:param>
<xsl:param name="max">1</xsl:param>

<xsl:if test="$cur &lt;= $max">
<xsl:element name="option">
<xsl:attribute name="value"><xsl:value-of select="$cur" /></xsl:attribute>
<xsl:value-of select="$cur" />
</xsl:element>

<xsl:call-template name="option">
<xsl:with-param name="cur" select="$cur + 1" />
<xsl:with-param name="max" select="$max" />
</xsl:call-template>
</xsl:if>
</xsl:template>

<xsl:template match="/">
<xsl:call-template name="select" />

<xsl:call-template name="select">
<xsl:with-param name="max" select="3" />
</xsl:call-template>
</xsl:template>

</xsl:stylesheet>
Сообщ. #828706
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 11:11