XSL stylesheet 2
<
xsl:stylesheet
version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<
xsl:template
match
="/">
<
xsl:call-template
name
="generateTable">
<
xsl:with-param
name
="inRow"
select
="3"/>
</
xsl:call-template
>
<
xsl:call-template
name
="generateTable">
<
xsl:with-param
name
="inRow"
select
="4"/>
</
xsl:call-template
>
<
xsl:call-template
name
="generateTable">
<
xsl:with-param
name
="inRow"
select
="5"/>
</
xsl:call-template
>
</
xsl:template
>
<
xsl:template
name
="generateTable">
<
xsl:param
name
="inRow"/>
<
xsl:variable
name
="text">
<
xsl:for-each
select
="//item">
<
xsl:sort
order
="ascending"
select
="."/>
<
xsl:value-of
select
="."/>
<
xsl:choose
>
<
xsl:when
test
='
position
()=
last
()'>
<
xsl:text
> XCELLSXXROWSX</
xsl:text
>
</
xsl:when
>
<
xsl:when
test
='
position
() mod $inRow'>
<
xsl:text
> XCELLSX</
xsl:text
>
</
xsl:when
>
<
xsl:otherwise
>
<
xsl:text
> XCELLSXXROWSX</
xsl:text
>
</
xsl:otherwise
>
</
xsl:choose
>
</
xsl:for-each
>
</
xsl:variable
>
<TABLE border="1">
<
xsl:call-template
name
="rows">
<
xsl:with-param
name
="string"
select
="$text"/>
</
xsl:call-template
>
</TABLE>
</
xsl:template
>
<
xsl:template
name
="rows">
<
xsl:param
name
="string"/>
<TR>
<
xsl:call-template
name
="cells">
<
xsl:with-param
name
='string'><
xsl:value-of
select
="
substring-before
($string,'XROWSX')"/>
</
xsl:with-param
>
</
xsl:call-template
>
</TR>
<
xsl:if
test
="
string-length
($string)">
<
xsl:call-template
name
="rows">
<
xsl:with-param
name
='string'><
xsl:value-of
select
="
substring-after
($string,'XROWSX')"/>
</
xsl:with-param
>
</
xsl:call-template
>
</
xsl:if
>
</
xsl:template
>
<
xsl:template
name
="cells">
<
xsl:param
name
="string"/>
<TD>
<
xsl:value-of
select
="
substring-before
($string,'XCELLSX')"/>
</TD>
<
xsl:if
test
="
string-length
($string)">
<
xsl:call-template
name
="cells">
<
xsl:with-param
name
='string'><
xsl:value-of
select
="
substring-after
($string,'XCELLSX')"/>
</
xsl:with-param
>
</
xsl:call-template
>
</
xsl:if
>
</
xsl:template
>
</
xsl:stylesheet
>