Subject: RE: returning single result from apply-templates From: DPawson@xxxxxxxxxxx Date: Tue, 10 Oct 2000 08:30:04 +0100 |
> > > If I do > > > > <xsl:apply-template select="foo//bar[1]"/> > > > > I get mutltiple results ... > > because each <bar> is #1 in its sequence, whereas I really only want > > the first <bar> from the result sequence. > > Do select="(foo//bar)[1]" Which is not the same as select="foo//bar[1]" but is the same as select="foo/descendant::bar[1]"/> Whats the plain English version of this please. Just what do the () do here? <quote>NOTE: The meaning of a Predicate depends crucially on which axis applies. For example, preceding::foo[1] returns the first foo element in reverse document order, because the axis that applies to the [1] predicate is the preceding axis; by contrast, (preceding::foo)[1] returns the first foo element in document order, because the axis that applies to the [1] predicate is the child axis.</quote> Pudding and proof etc. <xsl:template match="/"> &nl; (1)<xsl:apply-templates select="foo//bar[1]"/> &nl; (2)<xsl:apply-templates select="(foo//bar)[1]"/> &nl;(3)<xsl:apply-templates select="foo/descendant::bar[1]"/> </xsl:template> <xsl:template match="bar"> <xsl:value-of select="name() "/> </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: returning single result from ap, Kay Michael | Thread | Re: returning single result from ap, David Carlisle |
Re: Updated Benchmark Available, Paul Tchistopolskii | Date | RE: Formatting elements, DPawson |
Month |