Package org.jsoup.select

## Interface NodeFilter

    public interface NodeFilter

Node filter interface. Provide an implementing class to `NodeTraversor` to iterate through nodes.

This interface provides two methods, `head` and `tail`. The head method is called when the node is first seen, and the tail method when all of the node's children have been visited. As an example, head can be used to create a start tag for a node, and tail to create the end tag.

For every node, the filter has to decide whether to

- continue (`NodeFilter.FilterResult.CONTINUE`),
- skip all children (`NodeFilter.FilterResult.SKIP_CHILDREN`),
- skip node entirely (`NodeFilter.FilterResult.SKIP_ENTIRELY`),
- remove the subtree (`NodeFilter.FilterResult.REMOVE`),
- interrupt the iteration and return (`NodeFilter.FilterResult.STOP`).

The difference between `NodeFilter.FilterResult.SKIP_CHILDREN` and `NodeFilter.FilterResult.SKIP_ENTIRELY` is that the first will invoke `tail(Node, int)` on the node, while the latter will not. Within `tail(Node, int)`, both are equivalent to `NodeFilter.FilterResult.CONTINUE`.

### Nested Class Summary

Nested Classes
`static class` `NodeFilter.FilterResult` Filter decision.

### Method Summary

All Methods Instance Methods Abstract Methods
`NodeFilter.FilterResult` `head​(Node node, int depth)` Callback for when a node is first visited.
`NodeFilter.FilterResult` `tail​(Node node, int depth)` Callback for when a node is last visited, after all of its descendants have been visited.

### Method Detail

#### head

    NodeFilter.FilterResult head​(Node node,
                                 int depth)

Callback for when a node is first visited.

Parameters:
  `node` - the node being visited.
  `depth` - the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1.
Returns:
  Filter decision

#### tail

    NodeFilter.FilterResult tail​(Node node,
                                 int depth)

Callback for when a node is last visited, after all of its descendants have been visited.

Parameters:
  `node` - the node being visited.
  `depth` - the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node of that will have depth 1.
Returns:
  Filter decision