DC | 'Jeni' said:
> and it works.
don't sound so surprised:-)
..... errr, How'dya know that :-)
ancestor::*
is all the ancestor element nodes, and within this step (only)
they will be ordered in reverse document order. as ancestor is a
reverse axis. "this step" means up to the end of the
expression or to
the next / , predicates in [] are part of the step.
with the expression
ancestor::*[self::define or self::choice][1][self::choice]
there are no 'nested' predicates, hence its a single step.
I.e. the step is all in reverse document order.
[self::define or self::choice]
this is a boolean valued predicate so after evaluating this, the
current node list just consists of nodes for which the
predicate is
true, ie define or choice elements.
[1]
This is a numeric valued predicate so is [positon()=1]
and as we are
in a reverse axis step this is true for just the innermost element
in the current node list ie the innermost define or choice
Innermost being the node closest to 'ref' element, further away
from the root.
[self::choice]
This is a node-set predicate so is true just if the node set is
non-empty: it will be non-empty if the single node which
got past the
[1] is a choice and false otherwise, so it is true just if the
innermost define-or-choice element is a choice.
Jeni
Many thanks David. Excellent.
Watch him Jeni (the real one :-) He'll be usurping your clarity crown!
regards DaveP
--
DISCLAIMER:
NOTICE: The information contained in this email and any attachments is
confidential and may be privileged. If you are not the intended
recipient you should not use, disclose, distribute or copy any of the
content of it or of any attachment; you are requested to notify the
sender immediately of your receipt of the email and then to delete it
and any attachments from your system.
RNIB endeavours to ensure that emails and any attachments generated by
its staff are free from viruses or other contaminants. However, it
cannot accept any responsibility for any such which are transmitted.
We therefore recommend you scan all attachments.
Please note that the statements and views expressed in this email and
any attachments are those of the author and do not necessarily represent
those of RNIB.
RNIB Registered Charity Number: 226227
Website: http://www.rnib.org.uk