RE: Conditional Assigining
> > <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']"/> </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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format