Subject: [xsl] Re: recursive help From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Fri, 26 Sep 2003 21:56:46 +0200 |
And what should be the output? ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL "Wagstaff, Jason" <WagstaffJ@xxxxxxxxxxxx> wrote in message news:8ECAAC981350F94084F02B5E7699DC600AB478@xxxxxxxxxxxxxxxxxxxxx > 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 > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] recursive help, Mukul Gandhi | Thread | RE: [xsl] Re: Re: <xsl:choose> or , Kathy Burke |
Re: [xsl] how to match node set wit, Biying Huang | Date | RE: [xsl] Re: recursive help, Wagstaff, Jason |
Month |