Subject: RE: returning nodes which have a specific child
From: "Michael Sokolov" <sokolov@xxxxxxxxxxxx>
Date: Fri, 3 Jul 2009 10:34:02 -0400
|
Thanks - feeling mildly illiterate now. I've been using xpath happily for
years: not sure why I felt the need to complain today :)
-Mike
> -----Original Message-----
> From: David Carlisle [mailto:davidc@xxxxxxxxx]
> Sent: Friday, July 03, 2009 10:14 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: returning nodes which have a specific child
>
>
>
> > 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 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
>
>
>
> ______________________________________________________________
> __________
> The Numerical Algorithms Group Ltd is a company registered in
> England and Wales with company number 1249803. The registered
> office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The
> service is powered by MessageLabs.
> ______________________________________________________________
> __________
|