[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: xsl:for-each-group help needed !
On 17.09.2020 00:09, Imsieke, Gerrit, le-tex gerrit.imsieke@xxxxxxxxx wrote:
With a single for-each-group:100]"> B B B B B B B <xsl:choose> B B B B B B B B B <xsl:when test="count(current-group()) eq 1"> B B B B B B B B B B B <xsl:apply-templates select="current-group()"/> B B B B B B B B B </xsl:when> B B B B B B B B B <xsl:otherwise> B B B B B B B B B B B <block type="composite"> B B B B B B B B B B B B B <xsl:apply-templates select="current-group()"/> B B B B B B B B B B B </block> B B B B B B B B B </xsl:otherwise> B B B B B B B </xsl:choose> B B B B B </xsl:for-each-group> B B B </xsl:copy> B </xsl:template> I was wondering what output is wanted for <blocks> <block id="i1">content</block> <block id="i2" width="33">content</block> <block id="i3" width="67">content</block> <block id="i4" width="50">content</block> <block id="i5" width="50">content</block> <block id="i6" width="25">content</block> <block>content</block> <block id="i7" width="55">content</block> <block id="i8" width="20">content</block> <block id="i9">content</block> </blocks> Neither my suggestion nor the above seem to only wrap the adjacent block[@width] where the accumulator gives 100. I complicated or strengthened my attempt as <xsl:template match="blocks"> <xsl:copy> <xsl:for-each-group select="block" group-adjacent="not(@width)"> <xsl:choose> <xsl:when test="current-grouping-key()"> <xsl:apply-templates select="current-group()"/> </xsl:when> <xsl:otherwise> <xsl:for-each-group select="current-group()" group-ending-with="block[accumulator-before('width') eq 100]"> <xsl:choose> <xsl:when test="current-group()[last()][accumulator-before('width') eq 100]"> <block type="composite"> <xsl:apply-templates select="current-group()"/> </block> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="current-group()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:copy> </xsl:template>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|