|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: position()
* Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> [2005-02-02 18:06]:
> Alan,
>
> At 04:52 PM 2/2/2005, you wrote:
> > <document>
> > <bundle>
> > <component name="foo"/>
> > <bundle>
> > <component name="foo"/>
> > <target name="foo"/>
> > </bundle>
> > </bundle>
> > </document>
> >
> > Given this XSLT:
> >
> > <xsl:template match="/document//target">
> > <xsl:apply-tempaltes
> > select="ancestor::bundle/component[@name = current()/@name]"/>
> > </xsl:template>
> >
> > How do I select just the first ancestor component?
> >
> > Will this work?
> >
> > ancestor::bundle/component[@name = current()/@name and position() =
> > 1]
> >
> > Or does that refer to the position of component as a child of
> > bundle, therefore matching both components.
>
> The latter.
>
> You can get what you want by grouping all the components and then filtering
> from the group, instead of filtering only on the XPath step:
>
> (ancestor::bundle/component[@name = current()/@name])[1]
>
> By "first" I assume you mean "first in document order".
I mean first ancestor, or youngest ancestor. That would probably
be reverse document order.
Thanks for the explaination. It makes perfect sense to me.
--
Alan Gutierrez - alan@xxxxxxxxx
|
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








