Re: [xsl] Dynamically generating lists of finite length

Subject: Re: [xsl] Dynamically generating lists of finite length
From: Brendan Moran <bmoran@xxxxxxxxx>
Date: Tue, 17 Aug 2004 09:44:08 -0700
Hi,

Thanks, this helps a bunch, but I don't undestand quite what this bit does.

 <xsl:template match="node()|@*">
   <xsl:copy>
     <xsl:apply-templates select="node()|@*"/>
   </xsl:copy>
 </xsl:template>

Could you explain that to me?

Thanks,

Brendan Moran


Dimtre Novatchev wrote:


The following code presents one simple (not necessarily efficient)
compact and straightforward solution ot the splitting of "/a/b/c"
elements into pages of fixed length.

It doesn't address the other aspects of the problem, but these should
not be difficult, too:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

<xsl:output omit-xml-declaration="yes" indent="yes"/>

<xsl:variable name="vRecsPerPage" select="11"/>

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*/b/c">
<xsl:variable name="vPos">
<xsl:number count="/*/b/c" level="any"/>
</xsl:variable>
<xsl:if test="$vPos mod $vRecsPerPage = 1">
<page number="{ceiling($vPos div $vRecsPerPage)}"/>
</xsl:if>
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>



Cheers,


Dimitre Novatchev.

Current Thread