XContainer.Descendants Método

Definición

Devuelve una colección de los elementos descendientes de este documento o elemento, clasificados por documento.

Sobrecargas

Descendants()

Devuelve una colección de los elementos descendientes de este documento o elemento, clasificados por documento.

Descendants(XName)

Devuelve una colección filtrada de los elementos descendientes de este documento o elemento, clasificados por documento. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.

Comentarios

Este método usa la ejecución diferida.

Descendants()

Devuelve una colección de los elementos descendientes de este documento o elemento, clasificados por documento.

C#
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants ();

Devoluciones

IEnumerable<XElement>

Una interfaz IEnumerable<T> de XElement que contiene los elementos descendientes de XContainer.

Ejemplos

En el ejemplo siguiente se crea un árbol XML y, a continuación, se usa este método de eje para recuperar los descendientes.

C#
XElement xmlTree = new XElement("Root",  
    new XAttribute("Att1", "AttributeContent"),  
    new XElement("Child",  
        new XText("Some text"),  
        new XElement("GrandChild", "element content")  
    )  
);  
IEnumerable<XElement> de =  
    from el in xmlTree.Descendants()  
    select el;  
foreach (XElement el in de)  
    Console.WriteLine(el.Name);  

Este ejemplo produce el siguiente resultado:

Child  
GrandChild  

Comentarios

Tenga en cuenta que este método no se devolverá en el resultante IEnumerable<T>. Compruebe DescendantsAndSelf si necesita incluir el objeto actual XElement en los resultados.

Este método usa la ejecución diferida.

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Descendants(XName)

Devuelve una colección filtrada de los elementos descendientes de este documento o elemento, clasificados por documento. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.

C#
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName name);
C#
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName? name);

Parámetros

name
XName

XName que se va a comparar.

Devoluciones

IEnumerable<XElement>

Interfaz IEnumerable<T> de XElement que contiene los elementos descendientes de XContainer que coinciden con el XName especificado.

Ejemplos

En el ejemplo siguiente se imprimen todos los descendientes de un elemento .

C#
// Attributes are not nodes, so will not be returned by DescendantNodes.  
XElement xmlTree = new XElement("Root",  
    new XAttribute("Att1", "AttributeContent"),  
    new XElement("Child",  
        new XText("Some text"),  
        new XElement("GrandChild", "element content")  
    )  
);  
IEnumerable<XElement> de =  
    from el in xmlTree.Descendants("Child")  
    select el;  
foreach (XElement el in de)  
    Console.WriteLine(el.Name);  

Este ejemplo produce el siguiente resultado:

Child  

El siguiente es el mismo ejemplo, pero en este caso el XML está en un espacio de nombres. Para obtener más información, vea Trabajar con espacios de nombres XML.

C#
// Attributes are not nodes, so will not be returned by DescendantNodes.  
XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = new XElement(aw + "Root",  
    new XAttribute(aw + "Att1", "AttributeContent"),  
    new XElement(aw + "Child",  
        new XText("Some text"),  
        new XElement(aw + "GrandChild", "element content")  
    )  
);  
IEnumerable<XElement> de =  
    from el in xmlTree.Descendants(aw + "Child")  
    select el;  
foreach (XElement el in de)  
    Console.WriteLine(el.Name);  

Este ejemplo produce el siguiente resultado:

{http://www.adventure-works.com}Child  

Comentarios

Este método usa la ejecución diferida.

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0