[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Dynamically generating lists of finite length

Subject: Re: Dynamically generating lists of finite length
From: Dimtre Novatchev <dnovatchev@xxxxxxxxx>
Date: Sat, 14 Aug 2004 15:10:21 +1000
page number javascript
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.

On Fri, 13 Aug 2004 15:48:07 -0700, Brendan Moran <bmoran@xxxxxxxxx> wrote:
> Hi,
> I'm using xsl to generate a series of pages dynamically from a
> database.  I want to produce pages with a finite number of records
> (say 100) out of a 3 level tree,
> <a>
>   <b>
>      <c>1</c>
>      <c>2</c>
>      <c>3</c>
>      <c>4</c>
>   </b>
>   <b>
>      <c>1</c>
>      <c>2</c>
>      <c>3</c>
>      <c>4</c>
>      <c>5</c>
>      <c>6</c>
>   </b>
> <!--(etc. etc. etc.)-->
> </a>
> 
> Some attributes of 'b' elements need to be displayed at the start of a
> 'b' section or at the start of a page if a 'b' section is split across
> pages.  Only 'c' elements count towards the 100 elements per page.
> And I need to generate a link to the next page (just <a
> heref="javascript:foo(param1,param2,param3...);">) and the previous
> page.  Preferably at top and bottom.
> 
> The number of c elements in any given b element is unknown, and has no
> practical limit.  There may be b elements that contain no c elements.
> Naturally, information for those b elements should not be displayed.
> 
> I've been trying to figure this one out for a while now, but I'm lost
> on it.
> 
> Thanks
> --
> 
> Brendan Moran
> Research & Development
> http://www.tri-m.com

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.