XSL tree generator - condensed?

wxdqz

New Member
Hi, I'll try and keep this as short as possible...I'm using the WebFXTree (webfx.eae.net) component on my site. The treeview,described in javascript(1), is dynamically generated from the XML description(2)using a rather long-winded XSL transformation(3).My question is "can this XSL code be condensed at all?"(1) Javascript Treeview Definitionvar tree = new WebFXTree('Portfolio');var a = new WebFXTreeItem('Folder 1');tree.add(a);var b = new WebFXTreeItem('Folder 2');tree.add(b);b.add( new WebFXTreeItem('Folder 2a') );b.add( new WebFXTreeItem('Folder 2b') );var c = new WebFXTreeItem('Folder 3');tree.add(c);document.write(tree);(2) XML Treeview Description<TREE label="root"><FOLDER label="Folder 1"/><FOLDER label="Folder 2"><FOLDER label="Folder 2a"/><FOLDER label="Folder 2b"/></FOLDER><FOLDER label="Folder 3"/></TREE>(3) XSL to transform (2) into (1)<xsl:template match="TREE">var tree = new WebFXTree('<xsl:value-of select="@label"/>');<xsl:apply-templates/>document.write(tree);</xsl:template><!-- =================== --><!-- Top Level Folder --><xsl:template match="FOLDER[parent::TREE]"><xsl:variable name="FirstLevelID"><xsl:number value=http://forums.devx.com/archive/index.php/"position()" format="a"level="any"/></xsl:variable>var <xsl:value-of select="$FirstLevelID"/> = new WebFXTreeItem('<xsl:value-ofselect="@label"/>');tree.add(<xsl:value-of select="$FirstLevelID"/>);<xsl:apply-templates select="FOLDER"><xsl:with-param name="parentID" select="$FirstLevelID"/></xsl:apply-templates></xsl:template><!-- ========== --><!-- Folder --><xsl:template match="FOLDER[child::FOLDER]" priority="-1"><xsl:param name="parentID"/><xsl:variable name="FolderLevelID"><xsl:number format="a" level="any"/></xsl:variable>var <xsl:value-of select="$FolderLevelID"/> = new WebFXTreeItem('<xsl:value-ofselect="@label"/>');<xsl:value-of select="$parentID"/>.add(<xsl:value-of select="$FolderLevelID"/>);<xsl:apply-templates select="FOLDER"><xsl:with-param name="parentID" select="$FolderLevelID"/></xsl:apply-templates></xsl:template><!-- ============= --><!-- End Folder --><xsl:template match="FOLDER" priority="-2"><xsl:param name="parentID"/><xsl:copy-of select="$parentID"/>.add( new WebFXTreeItem('<xsl:value-of select="@label"/>'));</xsl:template>
 
Back
Top