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. |