[xsl] Re: recursive help

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