|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: returning single result from apply-templates
>
> > 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








