Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
egr 26.09.2004 15:08 / 26.09.2004 15:59
ну тогда еще вариант с рекурсией:<xsl:variable name="no_of_columns">3</xsl:variable> <xsl:template name="..."> <table> <xsl:param name="rowsAmount" select="floor(count(item) div $no_of_columns) + 1"/> <xsl:call-template name="printRow"> <xsl:with-param name="rowsAmount" select="$rowsAmount"/> </xsl:call-template> </table> </xsl:template> <xsl:template name="printRow"> <xsl:param name="row" select="0"/> <xsl:if test="$row < $rowsAmount"> <tr> <xsl:call-template name="printColumn"> <xsl:with-param name="row" select="$row"/> </xsl:call-template> </tr> <xsl:call-template name="printRow"> <xsl:with-param name="rowsAmount" select="$rowsAmount"/> <xsl:with-param name="row" select="$row + 1"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="printColumn"> <xsl:param name="column" select="0"/> <xsl:if test="$column < $no_of_columns"> <td> ... </td> <xsl:call-template name="printColumn"> <xsl:with-param name="row" select="$row"/> <xsl:with-param name="column" select="$column + 1"/> </xsl:call-template> </xsl:if> </xsl:template>