[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

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


Subject: Re: [xsl] returning nodes which have a specific child
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 3 Jul 2009 15:14:26 +0100

>  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