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

Subject: RE: [xsl] 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: [xsl] 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. 
> ______________________________________________________________
> __________

Current Thread