Интерфейс NodeIterator
public interface NodeIterator
NodeIterators используются для обхода набора узлов, например набора узлов в NodeList, поддерева документа, управляемого определённым Node, результатов запроса или любого другого набора узлов. Набор узлов для обхода определяется реализацией NodeIterator. DOM Level 2 определяет единственную реализацию NodeIterator для обхода поддерева документа в порядке документа. Экземпляры этих NodeIterators создаются вызовом DocumentTraversal.createNodeIterator(). См. также Спецификацию обхода и диапазонов объектной модели документа (DOM) Level 2.
- Начиная с:
- 9, DOM Level 2
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
detach() |
Отсоединяет NodeIterator от набора, по которому выполнялся обход, освобождая все вычислительные ресурсы и переводя NodeIterator в состояние INVALID. |
boolean |
getExpandEntityReferences() |
Значение этого флага определяет, видны ли дочерние узлы узлов ссылок на сущности для NodeIterator. |
NodeFilter |
getFilter() |
NodeFilter, используемый для фильтрации узлов. |
Node |
getRoot() |
Корневой узел NodeIterator, заданный при его создании. |
int |
getWhatToShow() |
Этот атрибут определяет, какие типы узлов представлены через NodeIterator. |
Node |
nextNode() |
Возвращает следующий узел в наборе и перемещает позицию NodeIterator в наборе. |
Node |
previousNode() |
Возвращает предыдущий узел в наборе и перемещает позицию NodeIterator назад в наборе. |
Подробное описание методов
getRoot
Node getRoot()
Корневой узел
NodeIterator, заданный при его создании.getWhatToShow
int getWhatToShow()
Этот атрибут определяет, какие типы узлов представлены через
NodeIterator. Доступный набор констант определён в интерфейсе NodeFilter. Узлы, не принятые whatToShow, будут пропущены, но их дочерние узлы всё ещё могут рассматриваться. Обратите внимание, что пропуск имеет приоритет над фильтром, если он задан.getFilter
NodeFilter getFilter()
NodeFilter, используемый для фильтрации узлов.getExpandEntityReferences
boolean getExpandEntityReferences()
Значение этого флага определяет, видны ли дочерние узлы узлов ссылок на сущности для
Чтобы получить представление документа с раскрытыми ссылками на сущности, не показывающее сам узел ссылки на сущность, используйте флаги
NodeIterator. Если значение равно false, эти дочерние узлы и их потомки будут отклонены. Обратите внимание, что это отклонение имеет приоритет над whatToShow и фильтром. Также обратите внимание, что в настоящее время это единственная ситуация, в которой NodeIterators может отклонить всё поддерево, а не пропустить отдельные узлы. Чтобы получить представление документа с раскрытыми ссылками на сущности, не показывающее сам узел ссылки на сущность, используйте флаги
whatToShow, чтобы скрыть узел ссылки на сущность, и при создании NodeIterator задайте для expandEntityReferences значение true. Чтобы получить представление документа, в котором присутствуют узлы ссылок на сущности, но сущности не раскрываются, используйте флаги whatToShow, чтобы показать узел ссылки на сущность, и задайте для expandEntityReferences значение false.nextNode
Node nextNode() throws DOMException
Возвращает следующий узел в наборе и перемещает позицию
NodeIterator в наборе. После создания NodeIterator первый вызов nextNode() возвращает первый узел в наборе.- Возвращает:
- Следующий
Nodeв обходящемся наборе илиnull, если в наборе больше нет элементов. - Выбрасывает:
-
DOMException- INVALID_STATE_ERR: Выбрасывается, если этот метод вызван после вызова методаdetach.
previousNode
Node previousNode() throws DOMException
Возвращает предыдущий узел в наборе и перемещает позицию
NodeIterator назад в наборе.- Возвращает:
- Предыдущий
Nodeв обходящемся наборе илиnull, если в наборе больше нет элементов. - Выбрасывает:
-
DOMException- INVALID_STATE_ERR: Выбрасывается, если этот метод вызван после вызова методаdetach.
detach
void detach()
Отсоединяет
NodeIterator от набора, по которому выполнялся обход, освобождая все вычислительные ресурсы и переводя NodeIterator в состояние INVALID. После вызова detach вызовы nextNode или previousNode приведут к выбрасыванию исключения INVALID_STATE_ERR.
© 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/NodeIterator.html