|
Subject: Re: [xsl] Grouping From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 21 Oct 2020 16:05:46 -0000 |
The group-wrap should be performed for sequences of <points> of @type = '1'. <Points> of other types and completeley other nodes should not be grouped.
The "group-adjacent" solution seemes obvious but I have to account for various parent elements that all have different templates. Wouldn't using the group-adj. solution mean that I have to edit each and every template that can possibly contain <points>?
I did not notice the requirement of different parent templates so I was thinking in doing
<xsl:template match="*[point/@type = 1]">
<xsl:copy>
<xsl:for-each-group select="*"
group-adjacent="boolean(self::point[@type = 1])">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<group>
<xsl:apply-templates select="current-group()"/>
</group>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
It is certainly possible to put the grouping code into a function to use it in different templates, hard to tell whether that will work with the various parent elements having different templates without seeing how these templates look.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Grouping, Christoph Naber pent | Thread | Re: [xsl] Grouping, Martin Honnen martin |
| Re: [xsl] Grouping, Christoph Naber pent | Date | Re: [xsl] Grouping, Martin Honnen martin |
| Month |