Re: [xsl] rendering a treeview *hairy problem*

Subject: Re: [xsl] rendering a treeview *hairy problem*
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Thu, 1 Feb 2001 10:23:01 +0000
Hi Mattias,

>> weee, this problem has been on my mind the last couple of days...
>> So roll up your sleeves and get your gray ones going, hopefully
>> they work better than mine :)
> No takers? aww come on, I was hoping this list would impress me with
> it's brilliance :)

Hey give us a chance - leave more than 4 hours between sending
messages and expecting a reply, especially if those 4 hours are when
those of us in Britain are asleep! :)

> I think I have the problem boiled down however. What I need to do is
> in each node go recursively through each parent and check whether it
> has any siblings.. but I'm not sure how to do that

You're looking for the ancestor:: axis, which gets all the ancestors
of the current node.

  <xsl:for-each select="ancestor::post">

If that ancestor has any following siblings, then you need to add a
line, otherwise just a space:

     <xsl:when test="following-sibling::post">
        <img align="middle" src="/community/images/line.gif" />
        <img align="middle" src="/community/images/space.gif" />

By the way, because of the built-in templates, the following:

  <xsl:for-each select="thread">
     <xsl:apply-templates />

is equivalent to simply:

  <xsl:apply-templates />

and you never need to define:

 <xsl:template match="/">

XSLT already has that built-in for you.

I hope that helps,


Jeni Tennison

 XSL-List info and archive:

Current Thread