Subject: Re: 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
|