/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This file is available under and governed by the GNU General Public
 * License version 2 only, as published by the Free Software Foundation.
 * However, the following notice accompanied the original version of this
 * file and, per its terms, should not be removed:
 *
 * Copyright (c) 2000 World Wide Web Consortium,
 * (Massachusetts Institute of Technology, Institut National de
 * Recherche en Informatique et en Automatique, Keio University). All
 * Rights Reserved. This program is distributed under the W3C's Software
 * Intellectual Property License. This program is distributed in the
 * hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE.
 * See W3C License http://www.w3.org/Consortium/Legal/ for more details.
 */

package org.w3c.dom.traversal;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

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
/** * <code>DocumentTraversal</code> contains methods that create * <code>NodeIterators</code> and <code>TreeWalkers</code> 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, <code>DocumentTraversal</code> will be implemented by * the same objects that implement the Document interface. * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>. * @since 9, DOM Level 2 */
public interface DocumentTraversal {
Create a new NodeIterator over the subtree rooted at the specified node.
Params:
  • 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.
Throws:
  • DOMException – NOT_SUPPORTED_ERR: Raised if the specified root is null.
Returns:The newly created NodeIterator.
/** * Create a new <code>NodeIterator</code> over the subtree rooted at the * specified node. * @param root The node which will be iterated together with its * children. The <code>NodeIterator</code> is initially positioned * just before this node. The <code>whatToShow</code> flags and the * filter, if any, are not considered when setting this position. The * root must not be <code>null</code>. * @param whatToShow This flag specifies which node types may appear in * the logical view of the tree presented by the * <code>NodeIterator</code>. See the description of * <code>NodeFilter</code> for the set of possible <code>SHOW_</code> * values.These flags can be combined using <code>OR</code>. * @param filter The <code>NodeFilter</code> to be used with this * <code>NodeIterator</code>, or <code>null</code> to indicate no * filter. * @param entityReferenceExpansion The value of this flag determines * whether entity reference nodes are expanded. * @return The newly created <code>NodeIterator</code>. * @exception DOMException * NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is * <code>null</code>. */
public NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException;
Create a new TreeWalker over the subtree rooted at the specified node.
Params:
  • 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.
Throws:
  • DOMException – NOT_SUPPORTED_ERR: Raised if the specified root is null.
Returns:The newly created TreeWalker.
/** * Create a new <code>TreeWalker</code> over the subtree rooted at the * specified node. * @param root The node which will serve as the <code>root</code> for the * <code>TreeWalker</code>. The <code>whatToShow</code> flags and the * <code>NodeFilter</code> are not considered when setting this value; * any node type will be accepted as the <code>root</code>. The * <code>currentNode</code> of the <code>TreeWalker</code> is * initialized to this node, whether or not it is visible. The * <code>root</code> functions as a stopping point for traversal * methods that look upward in the document structure, such as * <code>parentNode</code> and nextNode. The <code>root</code> must * not be <code>null</code>. * @param whatToShow This flag specifies which node types may appear in * the logical view of the tree presented by the * <code>TreeWalker</code>. See the description of * <code>NodeFilter</code> for the set of possible <code>SHOW_</code> * values.These flags can be combined using <code>OR</code>. * @param filter The <code>NodeFilter</code> to be used with this * <code>TreeWalker</code>, or <code>null</code> to indicate no filter. * @param entityReferenceExpansion If this flag is false, the contents of * <code>EntityReference</code> nodes are not presented in the logical * view. * @return The newly created <code>TreeWalker</code>. * @exception DOMException * NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is * <code>null</code>. */
public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException; }