|
|
|
новичок
      
участник
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>
|
|
|
|
|
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 <= $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 <= $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 <= $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>
|
|
|
|