package org.jsoup.select;

import org.jsoup.nodes.Node;

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

/** * Node visitor interface. Provide an implementing class to {@link NodeTraversor} to iterate through nodes. * <p> * This interface provides two methods, {@code head} and {@code 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. * </p> */
public interface NodeVisitor {
Callback for when a node is first visited.
Params:
  • 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.
/** * Callback for when a node is first visited. * * @param node the node being visited. * @param 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. */
void head(Node node, int depth);
Callback for when a node is last visited, after all of its descendants have been visited.
Params:
  • 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.
/** * Callback for when a node is last visited, after all of its descendants have been visited. * * @param node the node being visited. * @param 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. */
void tail(Node node, int depth); }