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 |