C# для профессионалов. Том II | страница 21



. При этом создается новый объект >XPathNavigator на основе узла, на который указывает >XPathNodeIterator. В данном случае создается >XPathNavigator для одного узла >book (книги) в документе. >LoadBook создает другой >XPathNodeIterator, вызывая иной тип метода выбора — метод >SelectDescendants. Это даст нам >XPathNodeIterator всех узлов-потомков и потомков узлов-потомков узла >book (книга), переданного в метод >LoadBook. Мы делаем другой цикл >MoveNext() на этом >XPathNodeIterator и загружаем окно списка именами и значениями элементов.

>XPathNavigator содержит все методы для перемещения и выбора элементов, которые могут понадобиться. Приведем некоторые из методов перемещения:

Имя методаОписание
MoveToПолучает в качестве параметра >XPathNavigator. Делает текущей позицию, которая указана в >XPathNavigator.
>MoveToAttributeПеремещает к именованному атрибуту. Получает имя атрибута и пространство имен как параметры.
>MoveToFirstAttributeПеремещает к первому атрибуту текущего элемента. Возвращает >true, если выполняется успешно.
>MoveToNextAttributeПеремещает к следующему атрибуту текущего элемента. Возвращает >true, если выполняется успешно.
>MoveToFirstПеремещает к первому >sibling текущего узла. Возвращает >true, если выполняется успешно, в противном случае возвращает >false.
>MoveToLastПеремещает к последнему >sibling текущего узла. Возвращает >true, если выполняется успешно.
>MoveToNextПеремещает к следующему >sibling текущего узла. Возвращает >true, если выполняется успешно.
>MoveToPreviousПеремещает к предыдущему >sibling текущего узла. Возвращает >true, если выполняется успешно.
>MoveToFirstChildПеремещает к первому потомку текущего элемента. Возвращает >true, если выполняется успешно.
>MoveToIdПеремещает к элементу с идентификатором ID, предоставленным в виде параметра. Должна существовать схема документа и данные элемента типа ID.
>MoveToParentПеремещает к предку текущего узла. Возвращает >true, если выполняется успешно.
>MoveToRootПеремещает к корневому узлу документа.

Существует также несколько методов >Select выбора подмножества узлов для работы. Все методы >Select возвращают объект >XPathNodeIterator. >XPathNodeIterator можно считать эквивалентом >NodeList или >NodeSet в >XPath. Этот объект имеет три свойства и два метода:

□ >Clone — создает новую копию себя

□ >Count — число узлов в объекте >XPathNodeIterator

□ >Current — возвращает >XPathNavigator, указывающий на текущий узел

□ >CurrentPosition — возвращает целое число, соответствующее текущей позиции