Spec-Zone.ru › OpenJDK 25

Интерфейс TreeWalker

public interface TreeWalker
Объекты TreeWalker используются для навигации по дереву документа или его поддереву с помощью представления документа, определяемого их флагами whatToShow и фильтром (если он есть). Любая функция, выполняющая навигацию с помощью TreeWalker, автоматически поддерживает любое представление, определяемое TreeWalker.

Исключение узлов из логического представления поддерева может привести к структуре, существенно отличающейся от структуры того же поддерева в полном документе без фильтрации. Узлы, являющиеся соседними в представлении TreeWalker, могут быть потомками разных, далеко отстоящих друг от друга узлов в исходном представлении. Например, рассмотрим NodeFilter, который пропускает все узлы, кроме текстовых узлов и корневого узла документа. В полученном логическом представлении все текстовые узлы будут соседними и будут отображаться как непосредственные дочерние узлы корневого узла, независимо от глубины вложенности структуры исходного документа.

См. также спецификацию обхода и диапазонов объектной модели документа (DOM) уровня 2.

Начиная с версии:
9, DOM Level 2

Краткое описание методов

Модификатор и тип Метод Описание
Node firstChild()
Перемещает TreeWalker к первому видимому дочернему узлу текущего узла и возвращает новый узел.
Node getCurrentNode()
Узел, на котором в данный момент находится TreeWalker.
boolean getExpandEntityReferences()
Значение этого флага определяет, видны ли дочерние узлы узлов ссылок на сущности для TreeWalker.
NodeFilter getFilter()
Фильтр, используемый для отбора узлов.
Node getRoot()
Узел root объекта TreeWalker, заданный при его создании.
int getWhatToShow()
Этот атрибут определяет, какие типы узлов представлены через TreeWalker.
Node lastChild()
Перемещает TreeWalker к последнему видимому дочернему узлу текущего узла и возвращает новый узел.
Node nextNode()
Перемещает TreeWalker к следующему видимому узлу в порядке документа относительно текущего узла и возвращает новый узел.
Node nextSibling()
Перемещает TreeWalker к следующему соседнему узлу текущего узла и возвращает новый узел.
Node parentNode()
Перемещается к ближайшему видимому узлу-предку текущего узла и возвращает его.
Node previousNode()
Перемещает TreeWalker к предыдущему видимому узлу в порядке документа относительно текущего узла и возвращает новый узел.
Node previousSibling()
Перемещает TreeWalker к предыдущему соседнему узлу текущего узла и возвращает новый узел.
void setCurrentNode(Node currentNode)
Узел, на котором в данный момент находится TreeWalker.

Подробное описание методов

getRoot

Node getRoot()
Узел root объекта TreeWalker, заданный при его создании.

getWhatToShow

int getWhatToShow()
Этот атрибут определяет, какие типы узлов представлены через TreeWalker. Доступный набор констант определён в интерфейсе NodeFilter. Узлы, не принимаемые whatToShow, пропускаются, но их дочерние узлы могут рассматриваться. Обратите внимание, что такое пропускание имеет приоритет над фильтром, если он есть.

getFilter

NodeFilter getFilter()
Фильтр, используемый для отбора узлов.

getExpandEntityReferences

boolean getExpandEntityReferences()
Значение этого флага определяет, видны ли дочерние узлы узлов ссылок на сущности для TreeWalker. Если значение равно false, эти дочерние узлы и их потомки будут отклонены. Обратите внимание, что это отклонение имеет приоритет над whatToShow и фильтром, если он есть.
Чтобы получить представление документа с раскрытыми ссылками на сущности, в котором сами узлы ссылок на сущности не отображаются, используйте флаги whatToShow, чтобы скрыть узел ссылки на сущность, и при создании TreeWalker задайте для expandEntityReferences значение true. Чтобы получить представление документа, в котором узлы ссылок на сущности отображаются без раскрытия сущностей, используйте флаги whatToShow, чтобы показать узел ссылки на сущность, и задайте для expandEntityReferences значение false.

getCurrentNode

Node getCurrentNode()
Узел, на котором в данный момент находится TreeWalker.
Изменения дерева DOM могут привести к тому, что текущий узел перестанет приниматься связанным с TreeWalker фильтром. Кроме того, currentNode можно явно установить в любой узел, независимо от того, находится ли он в поддереве, заданном узлом root, или будет ли он принят фильтром и флагами whatToShow. Дальнейший обход выполняется относительно currentNode, даже если этот узел не является частью текущего представления, с применением фильтров в заданном направлении; если обход невозможен, значение currentNode не меняется.

setCurrentNode

void setCurrentNode(Node currentNode) throws DOMException
Узел, на котором в данный момент находится TreeWalker.
Изменения дерева DOM могут привести к тому, что текущий узел перестанет приниматься связанным с TreeWalker фильтром. Кроме того, currentNode можно явно установить в любой узел, независимо от того, находится ли он в поддереве, заданном узлом root, или будет ли он принят фильтром и флагами whatToShow. Дальнейший обход выполняется относительно currentNode, даже если этот узел не является частью текущего представления, с применением фильтров в заданном направлении; если обход невозможен, значение currentNode не меняется.
Выбрасывает:
DOMException - NOT_SUPPORTED_ERR: возникает при попытке установить для currentNode значение null.

parentNode

Node parentNode()
Перемещается к ближайшему видимому узлу-предку текущего узла и возвращает его. Если при поиске parentNode предпринимается попытка подняться выше узла root объекта TreeWalker или не удаётся найти видимый узел-предок, этот метод сохраняет текущую позицию и возвращает null.
Возвращает:
Новый родительский узел или null, если у текущего узла нет родителя в логическом представлении объекта TreeWalker.

firstChild

Node firstChild()
Перемещает TreeWalker к первому видимому дочернему узлу текущего узла и возвращает новый узел. Если у текущего узла нет видимых дочерних узлов, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет видимых дочерних узлов в логическом представлении объекта TreeWalker.

lastChild

Node lastChild()
Перемещает TreeWalker к последнему видимому дочернему узлу текущего узла и возвращает новый узел. Если у текущего узла нет видимых дочерних узлов, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет дочерних узлов в логическом представлении объекта TreeWalker.

previousSibling

Node previousSibling()
Перемещает TreeWalker к предыдущему соседнему узлу текущего узла и возвращает новый узел. Если у текущего узла нет видимого предыдущего соседнего узла, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет предыдущего соседнего узла в логическом представлении объекта TreeWalker.

nextSibling

Node nextSibling()
Перемещает TreeWalker к следующему соседнему узлу текущего узла и возвращает новый узел. Если у текущего узла нет видимого следующего соседнего узла, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет следующего соседнего узла в логическом представлении объекта TreeWalker.

previousNode

Node previousNode()
Перемещает TreeWalker к предыдущему видимому узлу в порядке документа относительно текущего узла и возвращает новый узел. Если у текущего узла нет предыдущего узла или при поиске previousNode предпринимается попытка подняться выше узла root объекта TreeWalker, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет предыдущего узла в логическом представлении объекта TreeWalker.

nextNode

Node nextNode()
Перемещает TreeWalker к следующему видимому узлу в порядке документа относительно текущего узла и возвращает новый узел. Если у текущего узла нет следующего узла или при поиске nextNode предпринимается попытка подняться выше узла root объекта TreeWalker, возвращает null и оставляет текущий узел без изменений.
Возвращает:
Новый узел или null, если у текущего узла нет следующего узла в логическом представлении объекта TreeWalker.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/org/w3c/dom/traversal/TreeWalker.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API