Интерфейс TreeWalker

public interface TreeWalker

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

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

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

С момента:
9, DOM уровня 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 для скрытия узла ссылки на сущность и установите expandEntityReferences в true при создании TreeWalker. Чтобы создать представление документа, содержащего узлы ссылок на сущности, но без расширения сущностей, используйте флаги 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 пытается перейти вверх от узла TreeWalker root или если он не находит видимого родительского узла, этот метод сохраняет текущую позицию и возвращает 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 пытается перейти вверх от узла TreeWalker root, возвращает null, и сохраняет текущий узел.

Возвращает:
Новый узел или null, если у текущего узла нет предыдущего узла в логическом представлении TreeWalker.

nextNode

Node nextNode()

Перемещает TreeWalker к следующему видимому узлу в порядке документа относительно текущего узла и возвращает новый узел. Если у текущего узла нет следующего узла или если поиск nextNode пытается перейти вверх от узла TreeWalker root, возвращает null, и сохраняет текущий узел.

Возвращает:
Новый узел или null, если у текущего узла нет следующего узла в логическом представлении TreeWalker.

© 1993, 2020, 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/11/docs/api/java.xml/org/w3c/dom/traversal/TreeWalker.html

Spec-Zone .ru
спецификации, руководства, описания, API