Compartilhar via


Visão geral dos eixos do LINQ to XML

Após criar uma árvore XML ou carregar um documento XML em uma árvore XML, você poderá consultá-la para localizar elementos e atributos, e recuperar seus valores. Você recupera coleções por meio dos métodos de eixo, também denominados eixos. Alguns eixos são métodos nas classes XElement e XDocument que retornam coleções IEnumerable<T>. Alguns eixos são métodos de extensão na classe Extensions. Os eixos implementados como métodos de extensão operam em coleções e retornam coleções.

Conforme descrito em Visão geral da classe XElement, um objeto XElement representa o nó de um único elemento. O conteúdo de um elemento pode ser complexo (às vezes denominado conteúdo estruturado) ou pode ser um elemento simples. Um elemento simples pode ser vazio ou conter um valor. Se o nó contiver o conteúdo estruturado, você poderá usar os vários métodos de eixo para recuperar enumerações de elementos descendentes. Os métodos de eixo mais usados do eixo são Elements e Descendants.

Além dos métodos de eixo, que retornam coleções, há mais dois métodos que você geralmente usará nas consultas LINQ to XML. O método Element retorna um XElement único. O método Attribute retorna um XAttribute único.

Em várias circunstâncias, as consultas LINQ oferecem a maneira mais eficiente de examinar uma árvore, extrair dados dela e transformá-la. As consultas LINQ operam em objetos que implementam IEnumerable<T>, e os eixos do LINQ to XML retornam IEnumerable<T> das coleções XElement e IEnumerable<T> das coleções XAttribute. Você precisa dessas coleções para realizar suas consultas.

Além dos métodos de eixo que recuperam coleções de elementos e atributos, há métodos de eixo que permitem a você iterar na árvore detalhadamente. Por exemplo, em vez de tratar elementos e atributos, você pode trabalhar com os nós da árvore. Os nós são um nível mais refinado de granularidade do que os elementos e os atributos. Ao trabalhar com os nós, você pode examinar comentários XML, nós de texto, instruções de processamento e muito mais. Essa funcionalidade é importante, por exemplo, para alguém que estiver escrevendo em um processador de texto e deseja salvar documentos como XML. No entanto, a maioria dos programadores XML se preocupam basicamente com os elementos, os atributos e seus valores.

Métodos para recuperar uma coleção de elementos

Este é um resumo dos métodos da classe XElement (ou de suas classes base) que você chama em um XElement para retornar uma coleção de elementos.

Método Descrição
XNode.Ancestors Retorna um IEnumerable<T> do XElement dos ancestrais desse elemento. Uma sobrecarga retorna um IEnumerable<T> do XElement dos ancestrais que têm o XName especificado.
XContainer.Descendants Retorna um IEnumerable<T> do XElement dos descendentes desse elemento. Uma sobrecarga retorna um IEnumerable<T> do XElement dos descendentes que têm o XName especificado.
XContainer.Elements Retorna um IEnumerable<T> do XElement dos elementos filho desse elemento. Uma sobrecarga retorna um IEnumerable<T> do XElement dos elementos filho que têm o XName especificado.
XNode.ElementsAfterSelf Retorna um IEnumerable<T> do XElement dos elementos que vêm após esse elemento. Uma sobrecarga retorna um IEnumerable<T> do XElement dos elementos após esse elemento que têm o XName especificado.
XNode.ElementsBeforeSelf Retorna um IEnumerable<T> do XElement dos elementos que vêm antes desse elemento. Uma sobrecarga retorna um IEnumerable<T> do XElement dos elementos antes desse elemento que têm o XName especificado.
XElement.AncestorsAndSelf Retorna um IEnumerable<T> do XElement dos elementos e seus ancestrais. Uma sobrecarga retorna um IEnumerable<T> do XElement dos elementos que têm o XName especificado.
XElement.DescendantsAndSelf Retorna um IEnumerable<T> do XElement desse elemento e seus descendentes. Uma sobrecarga retorna um IEnumerable<T> do XElement dos elementos que têm o XName especificado.

Método para recuperar um único elemento

O método a seguir recupera um único filho de um objeto XElement.

Método Descrição
XContainer.Element Retorna o primeiro objeto filho XElement que tem o XName especificado.

Método para recuperar uma coleção de atributos

O método a seguir recupera atributos de um objeto XElement.

Método Descrição
XElement.Attributes Retorna um IEnumerable<T> do XAttribute de todos os atributos.

Método para recuperar um único atributo

O método a seguir recupera um único atributo de um objeto XElement.

Método Descrição
XElement.Attribute Retorna o XAttribute que tem o XName especificado.