Subject: RE: RE: xsl for
From: cknell@xxxxxxxxxx
Date: Fri, 07 Apr 2006 11:30:38 -0400
|
Given exactly what you state is your input (I suspect it's more complicated), this stylesheet will give the output you asked for using recursive calls to a named template.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:call-template name="pageBrowser">
<xsl:with-param name="maxpage" select="14" />
</xsl:call-template>
</xsl:template>
<xsl:template name="pageBrowser">
<xsl:param name="maxpage" />
<xsl:param name="start" select="5" />
<xsl:variable name="factor" select="/pageBrowser/@pageSize" />
<xsl:variable name="skipcount" select="$start * $factor" />
<xsl:if test="$start le $maxpage">
<a href="toto.htm?skip={$skipcount}"><xsl:value-of select="$start" /></a>
<xsl:call-template name="pageBrowser">
<xsl:with-param name="maxpage" select="$maxpage" />
<xsl:with-param name="start" select="$start + 1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
--
Charles Knell
cknell@xxxxxxxxxx - email
-----Original Message-----
From: Philippe LAPLANCHE <philippe.laplanche@xxxxxxxxxxxx>
Sent: Fri, 7 Apr 2006 16:54:40 +0200
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: RE: xsl for
Sorry I sent the mail before I finished writing it.
This may appear silly but I don't know how to do this in a clean way
with xsl ...
My input is
<pageBrowser startPage="5" pageSize="10"/>
And I want this output :
<a href="toto.htm?skip=50">5</a>
<a href="toto.htm?skip=60">6</a>
<a href="toto.htm?skip=70">7</a>
<a href="toto.htm?skip=80">8</a>
<a href="toto.htm?skip=90">9</a>
<a href="toto.htm?skip=100">10</a>
<a href="toto.htm?skip=110">11</a>
<a href="toto.htm?skip=120">12</a>
<a href="toto.htm?skip=130">13</a>
<a href="toto.htm?skip=140">14</a>
I mean I want to use a loop somewhere and I don't want to have
<xsl:template match="pageBrower">
<a href="toto.htm?skip={@startPage*@pageSize}"><xsl:value-of
select="@startPage"/></a>
<a href="toto.htm?skip={(@startPage+1)*@pageSize}"><xsl:value-of
select="@startPage+1"/></a>
<a href="toto.htm?skip={(@startPage+2)*@pageSize}"><xsl:value-of
select="@startPage+2"/></a>
<a href="toto.htm?skip={(@startPage+3)*@pageSize}"><xsl:value-of
select="@startPage+3"/></a>
...
</xsl:template>
Thanks in advance
Philippe
|