Re: [xsl] accumulators and continuous numbering

Subject: Re: [xsl] accumulators and continuous numbering
From: "Graydon graydon@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 18 Oct 2019 20:41:58 -0000
On Fri, Oct 18, 2019 at 08:21:28PM -0000, Martin Honnen martin.honnen@xxxxxx scripsit:
> On 18.10.2019 21:08, Graydon graydon@xxxxxxxxx wrote:
> > Is there a better way to get the single continuous sequence of numbers?
> 
> If don't want to create a result tree then I think instead of
> 
> <xsl:variable as="element(w:document)+" name="numberedSrc">
>  <xsl:apply-templates mode="fileNumber" select="$contentSet" />
> </xsl:variable>
> 
> you would need to use xsl:iterate select="$contentSet" and pass the
> latest accumulator on as the parameter of xsl:iterate, like I have done
> in https://xsltfiddle.liberty-development.net/bwdwrT
> 
>   <xsl:variable name="transformed-docs" as="element(root)*">
>       <xsl:iterate select="$docs">
>           <xsl:param name="sum" as="xs:integer" select="0"/>
>           <xsl:apply-templates>
>               <xsl:with-param name="sum" tunnel="yes" select="$sum"/>
>           </xsl:apply-templates>
>           <xsl:next-iteration>
>               <xsl:with-param name="sum" select="$sum +
> accumulator-after('acc-example')"/>
>           </xsl:next-iteration>
>       </xsl:iterate>
>   </xsl:variable>
> 
> Not sure whether that is anything better, it seems to be a bit too
> complicated.

Given the size of what I've got, I'll stick with "let's throw the lot in
a container element", but good to have a "by the each" example available.

Thank you!
Graydon

Current Thread