Общие сведения об осях LINQ to XML
Обновлен: November 2007
После создания XML-дерева или загрузки XML-документа в XML-дерево можно опросить его для поиска элементов и атрибутов и извлечения их значений. Коллекции получают с помощью методов оси, называемых также осями. Некоторые оси являются методами в классах XElement и XDocument, которые возвращают коллекции IEnumerable<T>. Некоторые оси являются методами расширений в классе Extensions. Оси, которые реализованы как методы расширений, работают с коллекциями и возвращают коллекции.
Как это описано в разделе Общие сведения о классе XElement, объект XElement представляет собой узел одного элемента. Содержимое элемента может быть сложным (иногда называется структурированным содержимым), или это может быть простой элемент. Простой элемент может быть пустым или содержать значение. Если узел содержит структурированное содержимое, можно использовать различные методы оси, чтобы получить перечисление элементов-потомков. Наиболее часто используемыми методами оси являются Elements и Descendants.
В дополнение к методам оси, которые возвращают коллекции, есть еще два метода, которые обычно используются в запросах LINQ to XML. Метод Element возвращает одиночный XElement. Метод Attribute возвращает одиночный XAttribute.
Для многих целей запросы LINQ обеспечивают самый эффективный способ проверить дерево, извлечь данные из него и преобразовать его. Запросы LINQ работают с объектами, которые реализуют коллекцию IEnumerable<T>, а оси LINQ to XML возвращают коллекцию IEnumerable<T> объекта Xelement и коллекцию IEnumerable<T> объекта XAttribute. Эти коллекции нужны для выполнения запросов.
В дополнение к методам оси, получающим коллекции элементов и атрибутов, существуют методы оси, которые позволяют проходить по всему дереву максимально подробно. Например, вместо того чтобы иметь дело с элементами и атрибутами, можно работать с узлами дерева. Узлы — это более глубокий уровень гранулярности, чем элементы и атрибуты. При работе с узлами можно просматривать комментарии XML, текстовые узлы XML, инструкции по обработке XML и др. Эти возможности важны, например, для разработчика текстового процессора, который хочет сохранить документы как XML. Обычно большинство программистов на XML в первую очередь связаны с элементами, атрибутами и их значениями.
Методы получения коллекции элементов
Ниже приведена сводка методов класса XElement (а также его базовых классов), которые можно вызвать в экземпляре XElement, чтобы вернуть коллекцию элементов.
Метод |
Описание |
---|---|
Возвращает коллекцию IEnumerable<T> предков экземпляра XElement. Перегрузка возвращает коллекцию IEnumerable<T> предков экземпляра XElement, имеющих указанный атрибут XName. |
|
Возвращает коллекцию IEnumerable<T> потомков экземпляра XElement. Перегрузка возвращает коллекцию IEnumerable<T> потомков экземпляра XElement, имеющих указанный атрибут XName. |
|
Возвращает коллекцию IEnumerable<T> дочерних элементов экземпляра XElement. Перегрузка возвращает коллекцию IEnumerable<T> дочерних элементов экземпляра XElement, имеющих указанный атрибут XName. |
|
Возвращает коллекцию IEnumerable<T> элементов, идущих после экземпляра XElement. Перегрузка возвращает коллекцию IEnumerable<T> элементов, идущих после экземпляра XElement, имеющих указанный атрибут XName. |
|
Возвращает коллекцию IEnumerable<T> элементов, идущих перед экземпляром XElement. Перегрузка возвращает коллекцию IEnumerable<T> элементов, идущих перед экземпляром XElement, имеющих указанный атрибут XName. |
|
Возвращает коллекцию IEnumerable<T>, состоящую из самого экземпляра XElement и его предков. Перегрузка возвращает IEnumerable<T> из XElement для элементов с указанным XName. |
|
Возвращает коллекцию IEnumerable<T>, состоящую из самого экземпляра XElement и его потомков. Перегрузка возвращает IEnumerable<T> из XElement для элементов с указанным XName. |
Метод получения одного элемента
Следующий метод позволяет получить один дочерний элемент из объекта XElement.
Метод |
Описание |
---|---|
Возвращает первый дочерний элемент объекта XElement, имеющий указанный атрибут XName. |
Метод получения коллекции атрибутов
Следующий метод позволяет получить атрибуты из объекта XElement.
Метод |
Описание |
---|---|
Возвращает коллекцию IEnumerable<T> всех атрибутов XAttribute. |
Метод получения одного атрибута
Следующий метод позволяет получить один атрибут из объекта XElement.
Метод |
Описание |
---|---|
Возвращает атрибут XAttribute, имеющий указанный атрибут XName. |