This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: testing for last node in a list
- To: Annmarie dot Rubin at east dot sun dot com, Jeni dot Tennison at epistemics dot co dot uk
- Subject: Re: testing for last node in a list
- From: Ann Marie Rubin - Sun PC Networking Engineering <Annmarie dot Rubin at east dot sun dot com>
- Date: Tue, 23 May 2000 10:44:20 -0400 (EDT)
- Cc: xsl-list at mulberrytech dot com
- Reply-To: xsl-list at mulberrytech dot com
Jeni,
Thanks. It worked!
Ann Marie
X-Sender: JTennison@NTServer
To: Annmarie.Rubin@east.sun.com
From: Jeni Tennison <Jeni.Tennison@epistemics.co.uk>
Subject: Re: testing for last node in a list
Cc: xsl-list@mulberrytech.com
Mime-Version: 1.0
X-MDaemon-Deliver-To: Annmarie.Rubin@East.Sun.COM
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by
purol.East.Sun.COM id GAA17422
Ann,
>I am generating a list of ancestor nodes for a matched CLASS element.
The
XSL
>calls this template to output the ancestors when a CLASS is matched. I
want to
>output a "|" character after each CLASS node, EXCEPT the last one. I
am
unable
>to express the correct test for the last node in this list. I tried
using
><xsl:if test="position()=last()">, but this statement returns true each
time the
>template is called.
>
>Is there another way to solve this?
Try thinking in terms of 'if I just know about node X, what is is about
node X that affects whether or not there is a | above or below me?' The
answer is that all nodes have a | above them apart from the one at the
top
of the hierarchy. How can you tell if you are at the top of the
hierarchy?
Because you don't have a parent node. So, try:
<!-- named template to do the hierarchy tracing -->
<xsl:template match="CLASS" mode="hierarchy">
<xsl:if test="@SUPERCLASS">
<xsl:apply-templates select="key('classes', @SUPERCLASS)"
mode="hierarchy"/>
<xsl:text>|</xsl:text>
</xsl:if>
<br data="{@SUPERCLASS}">
<a href="{@NAME}.html"><xsl:value-of select="@NAME"/></a>
</br>
</xsl:template>
Hope that helps,
Jeni
Dr Jeni Tennison
Epistemics Ltd, Strelley Hall, Nottingham, NG8 6PE
Telephone 0115 9061301 • Fax 0115 9061304 • Email
jeni.tennison@epistemics.co.uk
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list