|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Expandeable Tree!
I'm doing something similar (almost done!) but all in the client side,
using Javascript (Sarissa) . My structure is a little bit more
complicated and i have now 4 or 5 diferent XSLT to take care of it.
But from the beggining i choose to clearly separate the "treatment" of
the tree from the display, so when a user clicks a link i have allways
at least 2 XSLT to invoke, the first determines what are the brenches
to show and the second to do the html rendering.
On Fri, 11 Feb 2005 09:21:10 +1000, Adam J Knight
<adam@xxxxxxxxxxxxxxxxx> wrote:
> Hi all,
>
> First time posting, so I hope I am doing ok.
>
> I have a xml document that gets generated from a database (MySql).
> <?xml version="1.0"?>
> <tree>
> <tree_node id="7" depth="0" parent="0" value="Test">
> <tree_node id="8" depth="1" parent="7" value="Test Sub"/>
> <tree_node id="9" depth="1" parent="7" value="Test Sub One">
> <tree_node id="10" depth="2" parent="9" value="Test Sub Two"/>
> </tree_node>
> </tree_node>
> </tree>
>
> I am seeking to create a similar control to the one seen here:
> http://www.15seconds.com/issue/010921.htm
>
> However all xsl processing is done server side (Using PHP 4 XSLT Processor).
> Default view is all level (depth) 0 nodes displayed. A user clicks a html
> link that sends the id of the node clicked to the xsl file as a parameter
> and all children nodes are displayed. If depth is greater than one, all
> ancestor nodes will need to be displayed also.
>
> Here is the beginning of my stylesheet.
>
> <?xml version="1.0" encoding="iso-8859-1"?>
> <xsl:stylesheet version="1.1"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:param name="css"/>
> <xsl:param name="c_node"/>
> <xsl:param name="url"/>
>
> <xsl:output method="html" indent="yes"/>
>
> <xsl:template match="tree">
> <table class="{$css}" align="center">
> <xsl:apply-templates />
> </table>
> </xsl:template>
>
> <xsl:template match="//tree_node">
> <tr>
> <td width="{(@depth + 1) * 20}" align="right">
> <a href="{$url}&node={@id}">+</a>
> </td>
> <td>
> <xsl:value-of select="@value"/>
> </td>
> </tr>
> <xsl:apply-templates select="*[descendant-or-self::*/@id=$c_node]"/>
>
> </xsl:template>
>
> </xsl:stylesheet>
>
> I am only acquainted with xsl, so I would sure appreciate any suggestions on
> how to do this. I can't get past displaying the level (depth) 0 nodes, even
> when I click the appropriate link.
>
> Cheers,
> Adam
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








