Subject: RE: [xsl] Conditional Assigining From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Wed, 16 May 2001 17:15:17 +0100 |
> > <xsl:variable name="ID">-1</xsl:variable> > <xsl:for-each select="Section[parentID='0']"> > <xsl:if test="$ID=-1"> > <xsl:variable name="ID" select="sectionID" /> > </xsl:if> > id <xsl:value-of select="$ID"/> > XSLT isn't a sequential programming language, you are trying to use it as if it were. You can't do things in one iteration of xsl:for-each that affect subsequent iterations, because there is no such thing as "subsequent" in a non-sequential language. (See my XSLT Programmer's Reference for an essay on the subject...) Instead you want something like <xsl:for-each select="Section[parentID='0']"> <xsl:choose> <xsl:when test="preceding-sibling::Section[parentID='0']"> <xsl:value-of select="preceding-sibling::Section[parentID='0'][1]"/> </xsl:when> <xsl:otherwise>-1</xsl:otherwise> </xsl:choose> </xsl:for-each> That works because it expresses the output as a function of the input. Mike Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Conditional Assigining, David Carlisle | Thread | Re: [xsl] Conditional Assigining, Thomas B. Passin |
[xsl] Root node vs element root?, kfricovsky | Date | RE: [xsl] Root node vs element root, Michael Kay |
Month |