[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
AW: [xsl] table formating
Subject: AW: [xsl] table formating From: "Szabo, Patrick \(LNG-VIE\)" <patrick.szabo@xxxxxxxxxxxxx> Date: Wed, 26 Jan 2011 15:33:43 +0100 |
Works ! Thank you ! . . . . . . . . . . . . . . . . . . . . . . . . . . Patrick Szabo XSLT-Entwickler LexisNexis Marxergasse 25, 1030 Wien mailto:patrick.szabo@xxxxxxxxxxxxx Tel.: +43 (1) 534 52 - 1573 Fax: +43 (1) 534 52 - 146 -----UrsprC<ngliche Nachricht----- Von: Michael Kay [mailto:mike@xxxxxxxxxxxx] Gesendet: Mittwoch, 26. JC$nner 2011 15:20 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: Re: [xsl] table formating On 26/01/2011 14:08, Michael Kay wrote: > Do a preprocessing pass to add an @index attribute to all cells. > > Identity template plus > > <xsl:template match="row"> > <xsl:for-each-group select="cell" group-starting-with="cell[@index]"> > <xsl:for-each select="current-group()"> > <cell index="{current-group()[1]/@index + position() - 1}"> > <xsl:copy-of select="child::node()"/> > </ > </ > </ > </ > Sorry, that's the answer to a slightly different question - but one that's often useful in this kind of situation. For your problem I'd be inclined to use sibling recursion: <xsl:template match="row"> <xsl:apply-templates select="cell[1]" mode="add-missing-cells"> <xsl:wirh-param name="present-in-output select="0"/> </xsl:apply-templates> </xsl:template> <xsl:template match="cell" mode="add-missing-cells" priority="1"> <xsl:with-param name="present-in-output" as="xs:integer"/> <xsl:copy-of select="."/> <xsl:apply-templates select="following-sibling::cell[1]" mode="add-missing-cells"> <xsl:with-param name="present-in-output select="$present-in-output+1"/> </xsl:apply-templates> </xsl:template> <xsl:template match="cell[@index]" mode="add-missing-cells" priority="2"> <xsl:wirh-param name="present-in-output" as="xs:integer"/> <xsl:variable name="missing" select="@index - ($present-in-output + 1)" as="xs:integer"/> <xsl:for-each select="1 to $missing"><cell/></xsl:for-each> <xsl:copy-of select="."/> <xsl:apply-templates select="following-sibling::cell[1]" mode="add-missing-cells"> <xsl:with-param name="present-in-output select="$present-in-output+$missing+1"/> </xsl:apply-templates> </xsl:template> Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] table formating, Michael Kay | Thread | [xsl] Strategies for complex page n, Dan Haley |
Re: [xsl] table formating, Michael Kay | Date | [xsl] Strategies for complex page n, Dan Haley |
Month |