|
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">
...
</xsl:for-each>
If that ancestor has any following siblings, then you need to add a
line, otherwise just a space:
<xsl:choose>
<xsl:when test="following-sibling::post">
<img align="middle" src="/community/images/line.gif" />
</xsl:when>
<xsl:otherwise>
<img align="middle" src="/community/images/space.gif" />
</xsl:otherwise>
</xsl:choose>
By the way, because of the built-in templates, the following:
<xsl:for-each select="thread">
<xsl:apply-templates />
</xsl:for-each>
is equivalent to simply:
<xsl:apply-templates />
and you never need to define:
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
XSLT already has that built-in for you.
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] rendering a treeview *hai, Mattias Konradsson | Thread | Re: [xsl] rendering a treeview *hai, Mattias Konradsson |
| Re: [xsl] hyperlinks, David Carlisle | Date | Re: [xsl] rendering a treeview *hai, Oliver Becker |
| Month |