xsl-list
[Top] [All Lists]

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

2020-05-11 11:15:45


On 11.05.2020 17:47, Wendell Piez wapiez(_at_)wendellpiez(_dot_)com 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 stylesheet’s 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? ;-)

That’s 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 Müller-Hillebrand.

Gerrit


Cheers, Wendell



On Mon, May 11, 2020 at 10:44 AM Martin Honnen 
martin(_dot_)honnen(_at_)gmx(_dot_)de
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Am 11.05.2020 um 16:34 schrieb Rick Quatro rick(_at_)rickquatro(_dot_)com:


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.




--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>