Subject: RE: [xsl] Re: recursive help From: "Wagstaff, Jason" <WagstaffJ@xxxxxxxxxxxx> Date: Fri, 26 Sep 2003 14:58:22 -0500 |
I would like the results to look something like this. It is sort of like a book,section,chapter senario. <h>title of book</h> <h>Section 1</h> <a>chapter 1</a> <h>chapter 2</h> <a>subchapter 1</a> <h>Section 2</h> <a>chapter 1</a> <a>chapter 2</a> <h>Section 3</h> <h>Section 4</h> <a>chapter 1</a> the problem is that I will never know how deep/levels the standard can be. tia, jason -----Original Message----- From: Dimitre Novatchev [mailto:dnovatchev@xxxxxxxxx] Sent: Friday, September 26, 2003 2:57 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Parameters query, Michael Kay | Thread | [xsl] Re: Re: recursive help, Dimitre Novatchev |
[xsl] Re: recursive help, Dimitre Novatchev | Date | RE: [xsl] Re: <xsl:choose> or vari, Kathy Burke |
Month |