parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

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 &lt; $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 &lt; $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>