Subject: [xsl] Re: recursion questions From: Robert Koberg <rob@xxxxxxxxxx> Date: Tue, 30 Jan 2001 15:06:22 -0800 |
To save somebody the time trying to explain the basics to me... I figured it out. It was much simpler than I thought. Anyway, here is the template I came up with that produces (most of) the desired results: <xsl:template match="section"> <xsl:variable name="folder" select="@folder"/> <xsl:value-of select="$folder"/> = new List(true, width, height, "#EEEEEE"); <xsl:value-of select="$folder"/>.onexpand = colorize; <xsl:value-of select="$folder"/>.setFont(<![CDATA["<FONT FACE='Arial,Helvetica' SIZE='-1'>","</FONT>"]]>); <xsl:apply-templates select="section"/> <xsl:variable name="parent.folder" select="parent::section/@folder"/> <xsl:if test="$parent.folder!=''"> <xsl:value-of select="$parent.folder"/>.addList(<xsl:value-of select="$folder"/>, "<xsl:value-of select="@label"/>"); </xsl:if> </xsl:template> ----- Original Message ----- From: "Robert Koberg" <rob@xxxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Tuesday, January 30, 2001 7:31 AM Subject: recursion questions > I am having a problem understanding how to build some JavaScript for an > exandable/collapsible list similar to a directory tree. If anybody can help > it would be greatly appreciated. I could include what I have been trying > XSL-wise but it would probably be more distractive to the end goal. I > cannot figure out how to build a recursive template to handle the following > XML (the desired output follows): > > <section role="level1" folder="root" label="Test"> > <page id="1"/> > <section role="level2" folder="XSLXML" label="XSL/XML"> > <page id="2"/> > <section role="level3" folder="XML" label="XML"> > <page id="3"/> > <page id="4"/> > </section> > <section role="level3" folder="XSL" label="XSL"> > <page id="5"/> > <page id="6"/ > </section> > </section> > <section role="level2" folder="JSDHTMLCSS" label="JS/DHTML/CSS"> > <section role="level3" folder="JS" label="JS"> > </section> > <section role="level3" folder="DHTML" label="DHTML"> > </section> > <section role="level3" folder="CSS" label="CSS"> > </section> > </section> > </section> > > > > > ============================================================ > DESIRED OUTPUT > ------------------------------------- > root = new List(true, width, height, bgColor); > root.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'><B>","</B></FONT>"); > root.addItem("page id=1"); > XSLXML = new List(true, width, height, "#EEEEEE"); > XSLXML.onexpand = colorize; > XSLXML.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > XSLXML.addItem("page id=2"); > > XML = new List(false, width, height, bgColor); > XML.onexpand = colorize; > XML.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > XML.addItem("page id=3"); > XML.addItem("page id=4"); > > XSLXML.addList(XML, "XML"); > > XSL = new List(false, width, height, bgColor); > XSL.onexpand = colorize; > XSL.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > XSL.addItem("page id=5"); > XSL.addItem("page id=6"); > XSLXML.addList(XSL, "XSL"); > > root.addList(XSLXML, "XML/XSL"); > > JSDHTMLCSS = new List(true, width, height, "#EEEEEE"); > JSDHTMLCSS.onexpand = colorize; > JSDHTMLCSS.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > > JS = new List(false, width, height, bgColor); > JS.onexpand = colorize; > JS.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > JS.addItem("Some JS stuff"); > JS.addItem("Some more JS stuff"); > > JSDHTMLCSS.addList(JS, "JS"); > > DHTML = new List(false, width, height, bgColor); > DHTML.onexpand = colorize; > DHTML.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > DHTML.addItem("Some DHTML stuff"); > DHTML.addItem("Some more DHTML stuff"); > > JSDHTMLCSS.addList(DHTML, "DHTML"); > > CSS = new List(false, width, height, bgColor); > CSS.onexpand = colorize; > CSS.setFont("<FONT FACE='Arial,Helvetica' SIZE=-1'>","</FONT>"); > CSS.addItem("Some CSS stuff"); > CSS.addItem("Some more CSS stuff"); > > JSDHTMLCSS.addList(CSS, "CSS"); > > root.addList(JSDHTMLCSS, "JS/DHTML/CSS"); > > root.build(width/8,40); > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Numbering Grouped Child E, Jeni Tennison | Thread | Re: [xsl] recursion questions, by way of B. Tommie |
Re: [xsl] Extracting hypertext attr, frank Stein | Date | RE: [xsl] Parameters with Xalan 1.2, Anthony Ikeda |
Month |