[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] question on EXSLT data partitioning


Subject: Re: [xsl] question on EXSLT data partitioning
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Wed, 20 Oct 2010 14:56:54 +0200

> It should be possible without recursion
>    <xsl:for-each select="Entity[(position() - 1) mod $N = 0]">
>      <arguments>
>        <xsl:apply-templates select=". |
> following-sibling::Entity[position() &lt; $n"/>
>      </arguments>
>    </xsl:for-each>

Thanks Martin, that is perfect

> But I am not sure whether that is the approach you don't want.

Yes, that is what I wanted.

Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler, L3
Fixpack team lead
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



From:       Martin Honnen <Martin.Honnen@xxxxxx>
To:         xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Date:       10/19/2010 08:09 PM
Subject:    Re: [xsl] question on EXSLT data partitioning



Hermann Stamm-Wilbrandt wrote:

> yesterday I was asked by a colleague on data partitioning.
> He wanted to partition 100000s of Entities in blocks of 1000
> for sending a single Database update for 1000 entities.
>
> Below is the simplified input, partition size is N=3 and the
> requested output. Below that is the solution I provided.
>
> Here are my questions:
> * can this task be done without recursion in EXSLT?
>   [the colleage did not like the idea of doing the partitioning with
>    just XPath (1<=position()<=1000, 1001<=position()<=2000, ...)
>    because of the 6 digit number of entities]

It should be possible without recursion
   <xsl:for-each select="Entity[(position() - 1) mod $N = 0]">
     <arguments>
       <xsl:apply-templates select=". |
following-sibling::Entity[position() &lt; $n"/>
     </arguments>
   </xsl:for-each>
But I am not sure whether that is the approach you don't want.


--

             Martin Honnen
             http://msmvps.com/blogs/martin_honnen/


Current Thread
Keywords