ElementDepthFirstIterator(self, node, tag=None, inclusive=True)
Iterates over an element and its sub-elements in document order (depth
first pre-order).
Note that this also includes comments, entities and processing
instructions. To filter them out, check if the tag property
of the returned element is a string (i.e. not None and not a
factory function), or pass the Element factory for the tag
argument to receive only Elements.
If the optional tag argument is not None, the iterator returns only
the elements that match the respective name and namespace.
The optional boolean argument 'inclusive' defaults to True and can be set
to False to exclude the start element itself.
Note that the behaviour of this iterator is completely undefined if the
tree it traverses is modified during iteration.