ITreeWalker

ITreeWalker interface

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

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

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

public interface ITreeWalker : ITraversal

Характеристики

ИмяОписание
CurrentNode { get; set; }Узел, в котором в данный момент расположен TreeWalker. Изменения в дереве DOM могут привести к тому, что текущий узел больше не будет приниматься фильтром, связанным с TreeWalker. currentNode также может быть явно установлен на любой узел, независимо от того, внутри поддерева, заданного корневым узлом , или будет принят фильтром и флагами whatToShow. Дальнейший обход происходит относительно currentNode, даже если он не является частью текущего представления, путем применения фильтров в запрошенном направлении; если обход невозможен, currentNode не изменяется.

Методы

ИмяОписание
FirstChild()Перемещает TreeWalker к первому видимому дочернему элементу текущего узла и возвращает новый узел. Если текущий узел не имеет видимых потомков no , возвращает значение null и сохраняет узел current .
LastChild()Перемещает TreeWalker к последнему видимому дочернему элементу текущего узла и возвращает новый узел. Если текущий узел не имеет видимых потомков no , возвращает значение null и сохраняет узел current .
NextNode()Перемещает TreeWalker на следующий видимый узел в порядке document относительно текущего узла и возвращает новый узел. Если текущий узел не имеет следующего узла или если поиск nextNode пытается сделать шаг вверх от узла root TreeWalker, возвращает значение null и сохраняет текущий узел.
NextSibling()Перемещает TreeWalker к следующему одноуровневому узлу current и возвращает новый узел. Если текущий узел не имеет следующего узла visible , возвращает значение null и сохраняет текущий узел.
ParentNode()Перемещает и возвращает ближайший видимый узел-предок узла current . Если поиск parentNode пытается выполнить шаг вверх от корневого узла TreeWalker или , если ему не удается найти видимый узел-предок, этот метод сохраняет текущую позицию и возвращает null.
PreviousNode()Перемещает TreeWalker на предыдущий видимый узел в порядке документа относительно текущего узла и возвращает узел new . Если текущий узел не имеет предыдущего узла или если поиск предыдущего узла пытается перейти вверх от корневого узла TreeWalker, возвращает null и сохраняет текущий узел.
PreviousSibling()Перемещает TreeWalker к предыдущему брату текущего узла и возвращает новый узел. Если у текущего узла нет видимого предыдущего брата, возвращается null и сохраняется текущий узел .

Смотрите также