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

Re: Divide to pages

Subject: Re: Divide to pages
From: Paull <paullus4mlist@xxxxxxxxx>
Date: Wed, 05 Apr 2006 18:53:59 +0300
xsl if position divide
andrew welch wrote:

On 4/5/06, Paull <paullus4mlist@xxxxxxxxx> wrote:


Hello All,
following xml:
<data>
<item name="1" id="i1">v1</item>
<item name="2" id="i1">v2</item>
<item name="3" id="i1">v1</item>
<item name="4" id="i1">v1</item>
<item name="5" id="i1">v2</item>
<item name="6" id="i1">v1</item>
<item name="7" id="i1">v1</item>
<item name="8" id="i1">v2</item>
<item name="9" id="i1">v1</item>

<item name="10" id="i2">v2</item>
<item name="11" id="i2">v2</item>
<item name="12" id="i2">v2</item>


<group name="g1" id="i1"/> <group name="g2" id="i2"/> </data> should be transformed to the xml, where items are grouped by id, and divided to pages whith 5 items per page. Result should be like following: g1 1. i1v1 2. i1v2 3. i1v1 4. i1v1 5. i1v2 EOP 1. i1v1 2. i1v1 3. i1v2 4. i1v1 g2 5. i2v2 EOP 1. i2v2 2. i2v2

I can group it, but how to divide for pages - no idea ...



It's difficult to give an exact answer without seeing how you are grouping, but this can be achieved using mod, eg position() mod 5 = 0 will give you every fifth item.



I'm grouping with following:

<xsl:template match="/data">
<xsl:for-each select="group">
<xsl:variable name="id" select="@id"/>
<b><xsl:value-of select="$id"/></b><br/>
<xsl:apply-templates select="/data/item[@id=$id]" />
</xsl:for-each> </xsl:template>


<xsl:template match="item">
  <xsl:value-of select="@id"/> <xsl:value-of select="."/><br/>
<xsl:if test="position() mod 5 = 0">
   <!-- EOP -->
</xsl:if>
</xsl:template>

But using <xsl:if test="position() mod 5 = 0"> is not correct because it not handles situation with 5 groups each with one item should be pasted into one page.

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-2007 All Rights Reserved.