Re: [xsl] question on EXSLT data partitioning

Subject: Re: [xsl] question on EXSLT data partitioning
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Tue, 19 Oct 2010 17:10:13 +0200
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