Compartir a través de


Información general acerca de los ejes de LINQ to XML

Actualización: November 2007

Tras crear un árbol XML o haber cargado un documento XML en un árbol XML, puede realizar consultas sobre él para encontrar elementos y atributos, así como para recuperar sus valores. Las colecciones se recuperan mediante los métodos Axis, también denominados axes. Algunos de los ejes son métodos de las clases XElement y XDocument, que devuelven colecciones IEnumerable<T>. Algunos de los métodos Axes son métodos de extensión de la clase Extensions. Los ejes que se han implementado como métodos de extensión trabajan colecciones y devuelven colecciones.

Tal y como se describe en Información general acerca de la clase XElement, un objeto XElement representa un único nodo de elemento. El contenido de un elemento puede ser complejo (a veces conocido como contenido estructurado) o puede ser un elemento simple. Un elemento simple puede estar vacío o contener un valor. Si el nodo incluye contenido estructurado, puede utilizar diferentes métodos del eje para recuperar enumeraciones con los elementos descendientes. Los métodos de ejes que se utilizan con más frecuencia son Elements y Descendants.

Además de los métodos de ejes, que devuelven colecciones, existen dos métodos más que utilizará con regularidad en consultas LINQ to XML. El método Element devuelve un único XElement. El método Attribute devuelve un único XAttribute.

Por diversas razones, las consultas de LINQ ofrecen el modo más eficaz para examinar árboles, extraer datos de ellos y transformarlos. Las consultas de LINQ trabajan sobre objetos que implementan IEnumerable<T> y los métodos Axes de LINQ to XML devuelven interfaces IEnumerable<T> de colecciones Xelement e interfaces IEnumerable<T> de colecciones XAttribute. Para poder realizar las consultas, necesitará estas colecciones.

A parte de los métodos de ejes que permiten recuperar colecciones de elementos y atributos, existen métodos de ejes que le permiten iterar por un árbol con gran detalle. Por ejemplo, en vez de tratar directamente con los elementos y los atributos, podría trabajar con los nodos del árbol. Los nodos tienen un nivel de granularidad mayor que los elementos y atributos. Si trabaja con nodos, podrá examinar comentarios XML, nodos de texto, instrucciones de procesamiento, etc. Esta funcionalidad resultaría interesante, por ejemplo, para una persona que estuviese escribiendo un procesador de textos y quisiera guardar los documentos en formato XML. No obstante, la mayoría de programadores en XML se centran más en los elementos, los atributos y sus valores.

Métodos para recuperar una colección de elementos

A continuación encontrará un resumen de los métodos de la clase XElement (o de sus clases base) a los que podrá pasar un XElement para devolver una colección de elementos.

Método

Descripción

XNode.Ancestors

Devuelve un IEnumerable<T> de XElement de los antecesores de este elemento. Una sobrecarga devuelve un IEnumerable<T> de XElement de los antecesores que tengan el XName especificado.

XContainer.Descendants

Devuelve un IEnumerable<T> de XElement de los descendientes de este elemento. Una sobrecarga devuelve un IEnumerable<T> de XElement de los descendientes que tengan el XName especificado.

XContainer.Elements

Devuelve un IEnumerable<T> de XElement de los elementos secundarios dependientes de este elemento. Una sobrecarga devuelve un IEnumerable<T> de XElement de los elementos secundarios que tengan el XName especificado.

XNode.ElementsAfterSelf

Devuelve un IEnumerable<T> de XElement de los elementos que se encuentran después de este elemento. Una sobrecarga devuelve un IEnumerable<T> de XElement de los elementos que se encuentren después de este elemento y que tengan el XName especificado.

XNode.ElementsBeforeSelf

Devuelve un IEnumerable<T> de XElement de los elementos que se encuentran antes que este elemento. Una sobrecarga devuelve un IEnumerable<T> de XElement de los elementos que se encuentren antes que este elemento y que tengan el XName especificado.

XElement.AncestorsAndSelf

Devuelve un IEnumerable<T> de XElement de este elemento y de sus antecesores. Una sobrecarga devuelve un IEnumerable<T> de XElement de los elementos que tengan el XName especificado.

XElement.DescendantsAndSelf

Devuelve un IEnumerable<T> de XElement de este elemento y de sus descendientes. Una sobrecarga devuelve un IEnumerable<T> de XElement de los elementos que tengan el XName especificado.

Método para recuperar un único elemento

El siguiente método recupera un único elemento secundario a partir del objeto XElement.

Método

Descripción

XContainer.Element

Devuelve el objeto del primer elemento XElement secundario que tenga el XName especificado.

Método para recuperar una colección de atributos

El siguiente método recupera atributos a partir de un objeto XElement.

Método

Descripción

XElement.Attributes

Devuelve un IEnumerable<T> de XAttribute de todos los atributos.

Método para recuperar un único atributo

El siguiente método recupera un único atributo a partir de un objeto XElement.

Método

Descripción

XElement.Attribute

Devuelve el XAttribute que tenga el XName especificado.

Vea también

Conceptos

Ejes LINQ to XML