[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: recursive help
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
|
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
|