Subject: Re: [xsl] Best practice for group-adjacent with quasi-null grouping key? From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 26 Apr 2016 18:44:02 -0000 |
(Following assumes XSLT 2.0)
I don't use the @group-adjacent form of <xsl:for-each-group> often enough to be a master of it. I just ran into the problem that an empty sequence is not allowed as the result of evaluating the group-adjacent expression. Given data like
<contributor role="author">Joe Jones</contributor> <contributor role="author">Mary Mitchell</contributor> <contributor role="editor">Betty Berkeley</contributor> <contributor role="editor">Peter Parker</contributor>
my first instinct was to use <xsl:for-each-group select="contributor" group-adjacent="@role">
but I got a run-time error because the @role is not always present in my data. So I revised to
<xsl:for-each-group select="contributor" group-adjacent="if (@role) then string(@role) else 'false'">
which give the desired results. But is there a better general strategy, maybe using boolean false() as the grouping value, and then being sure to cast current-grouping-key() as a string whenever a string comparison is needed?
unless you could have both <el role="">...</el> and <el>...</el> and would need to distinguish them.
--- Diese E-Mail wurde von Avast Antivirus-Software auf Viren gepr|ft. https://www.avast.com/antivirus
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Best practice for group-adjac, David Sewell dsewell | Thread | Re: [xsl] Best practice for group-a, David Sewell dsewell |
[xsl] Best practice for group-adjac, David Sewell dsewell | Date | Re: [xsl] Best practice for group-a, David Sewell dsewell |
Month |