elements of element-expression
elements of returns a shelf of all
markup-element-event regions that are open around
the argument event. The first item of the resulting shelf is the root element of the document, and the
lastmost contains the argument event. The shelf cannot be modified, and its items are not keyed.
You can use
elements of in all the same ways you use other read-only, unkeyed shelves. You can get the
number of the elements, iterate over them with a
repeat over loop,
shelf, index it with an item number, or pass it to a function as a
define string source function full-path (read-only markup-element-event elements) as repeat over elements as e output "/" || name of e again element "row" when full-path (elements of ancestor "table") = "/document/appendix/table" suppress
If you apply
elements of to an event produced by
create-element-event, it will return a
single-item shelf with the same event. It is more useful to apply
elements of to an event created by a
markup parser. Such an event can be captured using
#current-markup-event or an element expression like
ancestor in the above example. Events are immutable: the
elements of a parsed event will always
be the same, both during the parse and after the parse is complete.
The older version of this operator,
current elements, is syntactically more constrained and its use
is not recommended. Most uses of
current elements of can be simply replaced by
and uses of
current elements not followed by
elements of element.
The only exception is
repeat over current elements. If you replace
elements in this case, you will also need to remove all the
element heralds preceding the shelf alias inside the loop body.