Re: [xsl] Searching the last element

Subject: Re: [xsl] Searching the last element
From: Andreas Grytz <agrytz@xxxxxxxxxxxxx>
Date: Fri, 25 Apr 2003 13:20:25 +0200
On Fri, Apr 25, 2003 at 11:59:50AM +0100, TSchutzerWeissmann@xxxxxxxxxxxxxxxx wrote:
> Hi Andreas
> 
> > > >   <p><xsl:apply-templates/>
> > > > 	<xsl:if test="/text/p[position()=last()]">
> > > 
> > > This tests if there is a last "p" in the whole document and 
> > will return true every time. You want
> > > 
> > >   <xsl:if test="position() = last()">
> > > 
> > I am sorry, this solution didn't work. But thanks for explaining me,
> > what has been wrong with my example.
> 
> it's only going to work if you do <xsl:apply-templates select="p"/> in
> <text> context. 
> 
I usually do things like this:

<xsl:template match="p">
 <p><xsl:apply-templates/></p>
</xsl:template>

Because the Input-Tree might have some elements within the p-element.

> If you just do <xsl:apply-templates/> you're applying templates to the whole
> document, which will change the values of position() and last(). They'll
> only give the values you want if you're just applying templates to this set
> of <p>s
Wasn't this clear, when I wrote <xsl:template match="p">?

BTW, if I change my stylesheet to:

<xsl:template match="p">
 <p><xsl:apply-templates select="p"/></p>
</xsl:template>

I got only starting <p>. Anyway, I am stumbling through the fog with a
little light in front.

Thanks,

	Andreas

> 
> HTH
> Tom SW
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

-- 
Andreas Grytz		| http://www.linuxnewmedia.de
Stefan-George-Ring 24	| Tel:	+49 (0) 89 993411-0
D-81929 München		| Fax:	+49 (0) 89 993411-99

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread