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.
|