This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
recursion questions
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] recursion questions
- From: Robert Koberg <rob at koberg dot com>
- Date: Tue, 30 Jan 2001 07:31:24 -0800
- References: <HHEBJPKAEAHKLGBCFIJOMEFIFHAA.prb@fivesight.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
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