Filters are objects that know how to "filter out" nodes. If an
Iterator or TreeWalker is given a filter, before it
returns the next node, it applies the filter. If the filter says to
accept the node, the Iterator returns it; otherwise, the Iterator
looks for the next node and pretends that the node that was
rejected was not there.
The DOM does not provide any filters. Filter is just an interface
that users can implement to provide their own filters.
Filters do not need to know how to iterate, nor do they need to
know anything about the data structure that is being iterated. This
makes it very easy to write filters, since the only thing they have
to know how to do is evaluate a single node. One filter may be used
with a number of different kinds of Iterators, encouraging code
reuse.
To create your own custom NodeFilter, define a subclass of
CustomNodeFilter which overrides the acceptNode() method and assign
an instance of it to the NodeFilter. For more details see the
CustomNodeFilter class
|