I frequently use this with msmxl or altova engine.
In that case, it's a 'default' position() by parent node , using the xml tree
entirely .
----- Message d'origine -----
De : "Martin Honnen" <Martin.Honnen@xxxxxx>
@ : <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Envoyi : mercredi 20 octobre 2010 15:32
Objet : Re: question on EXSLT data partitioning
> Erwan AMOUREUX wrote:
>> Fisrt sorry for my english, litlle out of practice
>>
>> Second, for this data volume , it would be nice to use key, isn't it ?
>> You cannot use a variable for modulo but that accelerate processing
>>
>> <xsl:key name="part" match="Entity" use="(position() - (position() mod
1000)) div 1000 ">
>> [...]
>> <xsl:for-each select="Entity[position() mod 1000 = 0]">
>> <arguments>
>> <xsl:apply-templates select ="key('part',position() div 1000) ">
</arguments>
>> </xsl:for-each>
>>
>> [...]
>>
>> I can't test (and make always error with modulo and other...) but that's
the scheme
>
> I agree that using a key makes sense but as far as I understand it when
> you use position() in the "use" expression of an "xsl:key" element it
> should be always 1. I have however found XSLT processors that implement
> that differently.
>
> --
>
> Martin Honnen
> http://msmvps.com/blogs/martin_honnen/
|