Subject: RE: [xsl] exit <xsl:for-each> or change <xsl:variable> From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 2 Apr 2002 11:14:32 +0100 |
> Here is the actual problem. If the processor comes across a > $next-table$ > cell it should: > > <xsl:if test="(cell[1]/data)='$next-table$'"> > </table><table border="1"> > </xsl:if> > > but that is not possible is it. Is there a way to do this? I > would like to > end the current table and start a new one when the value > '$next-table$' > shows up. You're thinking procedurally, and you're thinking in terms of writing tags, rather than writing nodes. This is a grouping problem. Use standard grouping techniques (www.jenitennison.com/xslt/grouping). The grouping key (the property of a node that determines whether two nodes are in the same group) in your case is something like: generate-id(preceding-sibling::cell[data='$next-table'][1]) that is, two nodes are in the same group if they both have the same node as the most recent $next-table$ cell. With XSLT 2.0 / Saxon 7.0 you can use pattern-based grouping: <xsl:for-each-group select="cell" group-starting-at="cell[data='$next-table']"> <table> <xsl:for-each select="current-group()"> <tr> .... </tr> </xsl:for-each> </table> </xsl:for-each-group> Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] exit <xsl:for-each> or ch, Matts Isuls | Thread | [xsl] Which parser is used when doc, Jakub . Valenta |
RE: [xsl] XML String as Parameter.., Michael Kay | Date | [xsl] Which parser is used when doc, Jakub . Valenta |
Month |