Интерфейс TreeWalker
public interface TreeWalker
TreeWalker объекты используются для навигации по дереву документа или поддереву с использованием представления документа, определённого их whatToShow флагами и фильтром (если есть). Любая функция, которая выполняет навигацию с использованием TreeWalker объекта, автоматически поддерживает любое представление, определённое TreeWalker объектом. Исключение узлов из логического представления поддерева может привести к структуре, существенно отличающейся от того же поддерева в полном, неотфильтрованном документе. Узлы, которые являются соседними в TreeWalker представлении, могут быть потомками различных, сильно удалённых узлов в исходном представлении. Например, рассмотрите NodeFilter объект, который пропускает все узлы, кроме узлов Text и корневого узла документа. В результирующем логическом представлении все узлы Text будут соседними и отобразятся как непосредственные потомки корневого узла, независимо от того, насколько глубоко вложенной является структура исходного документа.
См. также Спецификацию перемещения и диапазонов DOM (Document Object Model) уровня 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 объекта. Если ложно, эти дочерние узлы и их потомки будут отклонены. Обратите внимание, что это отклонение имеет приоритет над whatToShow объектом и фильтром, если таковой имеется. Чтобы создать представление документа, в котором ссылки на сущности раскрыты, а сам узел ссылки на сущность не отображается, используйте
whatToShow флаги, чтобы скрыть узел ссылки на сущность и установите expandEntityReferences в «истина» при создании TreeWalker объекта. Чтобы создать представление документа, содержащего узлы ссылок на сущности, но без расширения сущностей, используйте whatToShow флаги, чтобы отобразить узел ссылки на сущность и установите expandEntityReferences в «ложь».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, 2021, 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/17/docs/api/java.xml/org/w3c/dom/traversal/TreeWalker.html