Package org.jsoup.select

## Interface NodeVisitor

All Known Implementing Classes:
  `W3CDom.W3CBuilder`

    public interface NodeVisitor

Node visitor 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 emit a start tag for a node, and `tail` to create the end tag.

### Method Summary

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

### Method Detail

#### head

    void head​(Node node,
              int depth)

Callback for when a node is first visited.

The node may be modified (e.g. `Node.attr(String)` or replaced `Node.replaceWith(Node)`). If it's `instanceOf Element`, you may cast it to an `Element` and access those methods.

Note that nodes may not be removed during traversal using this method; use `NodeTraversor.filter(NodeFilter, Node)` with a `NodeFilter.FilterResult.REMOVE` return instead.

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.

#### tail

    void tail​(Node node,
              int depth)

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

Note that replacement with `Node.replaceWith(Node)`

is not supported in `tail`.

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.