Re: [xsl] Process the following group

Subject: Re: [xsl] Process the following group
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 7 Jul 2022 19:21:46 -0000
On 07.07.2022 21:10, rick@xxxxxxxxxxxxxx wrote:
>
> I have something like this:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <root>
>
> B B B  <div1/>
>
> B B B  <div1/>
>
> B B B  <div2/>
>
> B B B  <div2/>
>
> B B B  <div1/>
>
> </root>
>
> And I want to end up with this:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <root>
>
> B B B  <div1/>
>
> B B B  <div1>
>
> B B B B B B B  <div2/>
>
> B B B B B B B  <div2/>
>
> B B B  </div1>
>
> B B B  <div1/>
>
> </root>
>

I would think that

 B B  <xsl:template match="root">

 B B B B  <xsl:copy>

 B B B B B B  <xsl:for-each-group select="*" group-starting-with="div1">

 B B B B B B B B B  <xsl:copy>

 B B B B B B B B B B B B  <xsl:apply-templates select="@*, node(),
tail(current-group())"/>

 B B B B B B B B B  </xsl:copy>

 B B B B B  </xsl:for-each-group>

 B B  B  </xsl:copy>

 B B  </xsl:template>

together with <xsl:mode on-no-match="shallow-copy"/> would achieve that.

Current Thread