# Interface DocumentTraversal

public interface DocumentTraversal
`DocumentTraversal` contains methods that create `NodeIterators` and `TreeWalkers` to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). In DOMs which support the Traversal feature, `DocumentTraversal` will be implemented by the same objects that implement the Document interface.

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
  9, DOM Level 2

- ## Method Summary

  Modifier and Type
  Method
  Description
  `NodeIterator`
  `createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion)`
  Create a new `NodeIterator` over the subtree rooted at the specified node.
  `TreeWalker`
  `createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion)`
  Create a new `TreeWalker` over the subtree rooted at the specified node.

- ## Method Details

  - ### createNodeIterator

    NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException
    Create a new `NodeIterator` over the subtree rooted at the specified node.
    Parameters:
      `root` - The node which will be iterated together with its children. The `NodeIterator` is initially positioned just before this node. The `whatToShow` flags and the filter, if any, are not considered when setting this position. The root must not be `null`.
      `whatToShow` - This flag specifies which node types may appear in the logical view of the tree presented by the `NodeIterator`. See the description of `NodeFilter` for the set of possible `SHOW_` values.These flags can be combined using `OR`.
      `filter` - The `NodeFilter` to be used with this `NodeIterator`, or `null` to indicate no filter.
      `entityReferenceExpansion` - The value of this flag determines whether entity reference nodes are expanded.
    Returns:
      The newly created `NodeIterator`.
    Throws:
      `DOMException` - NOT_SUPPORTED_ERR: Raised if the specified `root` is `null`.

  - ### createTreeWalker

    TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException
    Create a new `TreeWalker` over the subtree rooted at the specified node.
    Parameters:
      `root` - The node which will serve as the `root` for the `TreeWalker`. The `whatToShow` flags and the `NodeFilter` are not considered when setting this value; any node type will be accepted as the `root`. The `currentNode` of the `TreeWalker` is initialized to this node, whether or not it is visible. The `root` functions as a stopping point for traversal methods that look upward in the document structure, such as `parentNode` and nextNode. The `root` must not be `null`.
      `whatToShow` - This flag specifies which node types may appear in the logical view of the tree presented by the `TreeWalker`. See the description of `NodeFilter` for the set of possible `SHOW_` values.These flags can be combined using `OR`.
      `filter` - The `NodeFilter` to be used with this `TreeWalker`, or `null` to indicate no filter.
      `entityReferenceExpansion` - If this flag is false, the contents of `EntityReference` nodes are not presented in the logical view.
    Returns:
      The newly created `TreeWalker`.
    Throws:
      `DOMException` - NOT_SUPPORTED_ERR: Raised if the specified `root` is `null`.