Re: [xsl] returning nodes which have a specific child

Subject: Re: [xsl] returning nodes which have a specific child
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Fri, 3 Jul 2009 21:12:38 +0530
Thanks, David for the clarification. I always learn from your answers :)

On Fri, Jul 3, 2009 at 7:44 PM, David Carlisle<davidc@xxxxxxxxx> wrote:
>
>
>> B But I still have to say it seems strange that "@*" (apparently) can
>> match attributes on the child axis and node() can't ...
>
> There are never any attributes on the child axis.
>
> It's simpler to see the distinction if you first expand the abbreviated
> syntax.
>
> node()
>
> doesn't have an explict axis specifier so it is an abbreviation for
>
> child::node()
>
> so the reason it doesn't match attributes is nothing to do with the
> node test "node()" it is simply that the test is applied to the child
> axis, and there are no attributes on the child axis. The same is true of
> namespace nodes, incidentally.
>
>
>
> @* is an abbrevation for
>
> attribute::*
>
>
>
> You can see that the node test node() is true for B attribute nodes if you
apply
> it to an axis that has such nodes, as in:
>
> attribute:node()
>
> node() matches attributes in other contexts too, such as the xpath2
> expression
>
> @foo instance of node()
>
> which is true if there is a foo attribute.
>
> David


--
Regards,
Mukul Gandhi

Current Thread