Re: [xsl] Nested for-each-group and current-group()

Subject: Re: [xsl] Nested for-each-group and current-group()
From: "Imsieke, Gerrit, le-tex gerrit.imsieke@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 11 May 2020 16:15:40 -0000
On 11.05.2020 17:47, Wendell Piez wapiez@xxxxxxxxxxxxxxx wrote:
Hi,

Alternatively, if you wish to continue using xsl:apply-templates
idiomatically and capture all nodes in traversal without the ungainly
"current-group()/node()", you could write

<xsl:for-each select="current-group()">
   <xsl:apply-templates/>
</xsl:for-each>

I think Rick already did a similar thing in the stylesheet that he posted 4 mins before your message. He introduced two xsl:for-each instructions (gasp!), thereby totally marring his or rather, his stylesheetbs HOAXCoQS [1] score, from 26.32 down to 19.05!


[1] https://github.com/sydb/HOAXCoQS


However, note that this will get you a demerit in certain automated assessments of XSLT code "quality", which disparage any use of for-each even for simple context switching. (Right Gerrit? ;-)

Thatbs true, but you can compensate it by using xsl:apply-templates idiomatically, for example. Or another level of nested grouping just for the score of it.


Grouping is never bad, ask Michael MC<ller-Hillebrand.

Gerrit


Cheers, Wendell




On Mon, May 11, 2020 at 10:44 AM Martin Honnen martin.honnen@xxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

Am 11.05.2020 um 16:34 schrieb Rick Quatro rick@xxxxxxxxxxxxxx:



I am using nested xsl:for-each-group constructs but I don't get the inner <ul> elements. I think I am incorrect in my use of current-grouping-key() or current-group() on the inner group. Thanks in advance.

I think you need to process the child nodes of the current group with e.g. current-group()/* in your inner grouping.

Current Thread