Subject: [xsl] recursive help From: "Wagstaff, Jason" <WagstaffJ@xxxxxxxxxxxx> Date: Fri, 26 Sep 2003 14:12:30 -0500 |
i have an xml document that needs to be transformed which seems to perfect for recursion. (this is my first attempt at trying this) it is essentialy a nested menu system of links. the basic logic is it checks to see if a node has a child, if it does print a header otherwise a link. i built the xml document using recursion, i just can't figure out how to transform it useing the same technique. samples of both xml and xslt xml doc: <?xml ?> <standards> <standard id="1" name="test"> <standard id ="32" name="test" /> <standard id ="45" name="test> <standard id ="23" name="test" /> <standard id ="12" name="test" /> </standard> </standard> </standards> xslt: <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template name="buildmenu"> <xsl:param name="foo" /> <xsl:choose> <xsl:when test="position()!=last()"> <xsl:choose> <!-- test to see if foo has children if so print header --> <xsl:when test="count($foo) != 0"> has child print header <h2><xsl:value-of select="@name" /></h2> <xsl:call-template name="buildmenu"> <xsl:with-param name="foo" select="$foo" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <!-- no children print link --> <a><xsl:attribute name="href">addlinkinfol8r</xsl:attribute><xsl:value-of select="@name" /></a> <xsl:call-template name="buildmenu"> <xsl:with-param name="foo" select="$foo" /> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <a><xsl:attribute name="href">addlinkinfol8r</xsl:attribute><xsl:value-of select="@name" /></a> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="standards"> <xsl:call-template name="buildmenu"> <xsl:with-param name="foo" select="standard" /> </xsl:call-template> </xsl:template> <!--<xsl:template match="standards"> <xsl:for-each select="standard"> <a><xsl:attribute name="href">addlinkinfol8r</xsl:attribute><xsl:value-of select="@name" /></a> </xsl:for-each> </xsl:template> --> </xsl:transform> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Re: <xsl:choose> or vari, Passin, Tom | Thread | Re: [xsl] recursive help, Mukul Gandhi |
Re: [xsl] Re: <xsl:choose> or vari, Brook Ellingwood | Date | RE: [xsl] Re: <xsl:choose> or vari, Passin, Tom |
Month |