xsl-list
[Top] [All Lists]

Re: [xsl] Value of variable not appearing in the <xsl:otherwise> of xml:choose

2021-09-22 14:54:24
And don’t forget xsl:iterate as an alternative to recursive functions or 
templates (if you can use XSLT 3).

Cheers,

Eliot
_____________________________________________
Eliot Kimber
Sr Staff Content Engineer
O: 512 554 9368
M: 512 554 9368
servicenow.com<https://www.servicenow.com>
LinkedIn<https://www.linkedin.com/company/servicenow> | 
Twitter<https://twitter.com/servicenow> | 
YouTube<https://www.youtube.com/user/servicenowinc> | 
Facebook<https://www.facebook.com/servicenow>

From: Wendell Piez wapiez(_at_)wendellpiez(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>
Date: Wednesday, September 22, 2021 at 1:33 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Subject: Re: [xsl] Value of variable not appearing in the <xsl:otherwise> of 
xml:choose
[External Email]

Hi again,

What Graydon says is totally true, but the counter is also true, that it can be 
amazing what grouping *can* be made to do and problems it can solve that you 
didn't think were grouping problems but actually are.

This actually includes overlap problems, as Gerrit (just to name one) has also 
shown. One of my favorite patterns is group-adjacent with a function as a 
grouping key.

Cheers, Wendell




On Wed, Sep 22, 2021 at 1:17 PM Graydon 
graydon(_at_)marost(_dot_)ca<mailto:graydon(_at_)marost(_dot_)ca> 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com<mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>>
 wrote:
On Wed, Sep 22, 2021 at 05:06:34PM -0000, Wendell Piez 
wapiez(_at_)wendellpiez(_dot_)com<mailto:wapiez(_at_)wendellpiez(_dot_)com> 
scripsit:
Another optimization to consider is to group using
group-adjacent="@class='analyze_visual'" returning a Boolean grouping key,
and groups that are nicely split.

Then part/@num should collapse into '{position()}' and things get simpler.
Also gracefully handles the case of multiple splits.

Especially if you find Wendell's observation above covers your use
cases, it won't apply this time, but in general, I find that if I'm
struggling with xsl:for-each-group, I should -- and sometimes I even do!
-- remember that xsl:for-each-group is not fully general. There comes a
time to write one's own recursive grouping function for this particular
case.

Which sounds awful, but is generally much simpler than it feels like it
ought to be and is highly preferable to trying to make
xsl:for-each-group cover a case it can't cover.

--
Graydon Saunders  | 
graydonish(_at_)gmail(_dot_)com<mailto:graydonish(_at_)gmail(_dot_)com>
Þæs oferéode, ðisses swá mæg.
-- Deor  ("That passed, so may this.")



--
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez.<https://urldefense.com/v3/__http:/github.com/wendellpiez.__;!!N4vogdjhuJM!STJELpeWTl7S3m-lHIYu02PfkNtB2NjAftWg3meozdDuHjS1sfvWunTfw_ayKrkOwlZ-CA$>..
 ...gitlab.coko.foundation/wendell...
XSL-List info and 
archive<https://urldefense.com/v3/__http:/www.mulberrytech.com/xsl/xsl-list__;!!N4vogdjhuJM!STJELpeWTl7S3m-lHIYu02PfkNtB2NjAftWg3meozdDuHjS1sfvWunTfw_ayKrmKgh2nfw$>
EasyUnsubscribe<https://urldefense.com/v3/__http:/lists.mulberrytech.com/unsub/xsl-list/3453418__;!!N4vogdjhuJM!STJELpeWTl7S3m-lHIYu02PfkNtB2NjAftWg3meozdDuHjS1sfvWunTfw_ayKrmUFIg4vg$>
 (by email<>)
--~----------------------------------------------------------------
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>