[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:19:21 +0100 |
I'm sorry but I donbt get how that would help. Could you please explain that to me ?! regards . . . . . . . . . . . . . . . . . . . . . . . . . . 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:08 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: Re: [xsl] table formating 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()"/> </ </ </ </ Michael Kay Saxonica On 26/01/2011 13:50, Szabo, Patrick (LNG-VIE) wrote: > Hi, > > Again This have to ask you people for help because I'm stuck. > > This is an abstract of what my input looks like: > > <row> > <cell> > <absatz>Sozialversicherung (1.650,00 * 18,07 %)</absatz> > </cell> > <cell index="3"> </cell> > <cell> </cell> > <cell index="6"> > <absatz>298.16</absatz> > </cell> > </row> > > So the index of a<cell> says what its position in a<row> should be. > My desired output is: > > <row> > <cell> > <absatz>Sozialversicherung (1.650,00 * 18,07 %)</absatz> > </cell> > <cell></cell> > <cell index="3"> </cell> > <cell> </cell> > <cell></cell> > <cell index="6"> > <absatz>298.16</absatz> > </cell> > </row> > > NOTE: It's not sure that there are always 2 cells with @index. Could be > more or less too. > > I've tried this: > <xsl:template match="cell[@index]"> > <xsl:variable name="prec_cells" > select="xs:integer(count(preceding-sibling::cell[not(@index)]) + > sum(preceding-sibling::cell/@index))"/> > > <xsl:for-each select="1 to xs:integer((@index - 1) - > $prec_cells)"> > <entry> > <absatz/> > </entry> > </xsl:for-each> > <entry> > <xsl:apply-templates/> > </entry> > </xsl:template> > > Unfortunately this only works for 1<cell> with @index per<row>. > > Can anyone tell me how to solve that ?! > > Kind regards > > . . . . . . . . . . . . . . . . . . . . . . . . . . > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] table formating, Michael Kay | Thread | Re: [xsl] table formating, Michael Kay |
Re: [xsl] table formating, Michael Kay | Date | Re: [xsl] table formating, Michael Kay |
Month |