xsl-list
[Top] [All Lists]

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

2009-07-03 11:43:26
Thanks, David for the clarification. I always learn from your answers :)

On Fri, Jul 3, 2009 at 7:44 PM, David 
Carlisle<davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:


 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


-- 
Regards,
Mukul Gandhi

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--