|
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 |