Subject: RE: XSL to generate required output
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 12 Dec 2005 14:20:12 -0000
|
> I tried using following xsl:
>
> <xsl:template match="Root[Cell='##']">
> <xsl:variable name="poscurrent" select="position()"/>
> <Level>
> <xsl:copy-of
> select="following-sibling::Row[not(Cell='##')][position()
> < poscurrent]"/>
> </Level>
> </xsl:template>
>
> Please let me know where I'm going wrong?
>
> <Root>
> <Cell>###</Cell>
> <Cell>x</Cell>
> <Cell>y</Cell>
> <Cell>###</Cell>
> <Cell>z</Cell>
> </Root>
>
Almost everywhere, I'm afraid.
First correct "###" to "##", and "poscurrent" to "$poscurrent".
A Root element doesn't have a following-sibling that's a Row.
The value of position() (and hence of $poscurrent) depends on the
apply-templates that causes this template rule to be invoked, which isn't
shown. But it's unlikely to have any relevance to the problem.
Michael Kay
http://www.saxonica.com/
|