Интерфейс 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 |
Узел, на котором в данный момент находится 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.
© 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