Re: [xsl] for-each-group

Subject: Re: [xsl] for-each-group
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 28 Mar 2018 16:27:00 -0000
On 28.03.2018 18:22, Rick Quatro rick@xxxxxxxxxxxxxx wrote:
OK, I think I get it. You are grouping on a string derived from the node name instead of the node itself. This doesn't work for my general intent, because the other elements may not all be the same. For example, I might have this:

<steps>

<step>

<para>Intro stuff</para>

<para>More intro stuff</para>

<figure/>

<figure/>

<para>Conclusion stuff</para>

<table>More conclusion stuff</table>

<para>More conclusion stuff</para>

</step>

</steps>

and I would want the three elements following the last figure to be in a single group.

<xsl:template match="step">
<xsl:copy>
<xsl:for-each-group select="*" group-adjacent="if (not(boolean(self::figure))) then true() else (position() - 1 idiv 1)">
<group>
<xsl:apply-templates select="current-group()"/>
</group>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>


might do

Current Thread