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.

public:
 System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants();
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants ();
member this.Descendants : unit -> seq<System.Xml.Linq.XElement>
Public Function Descendants () As IEnumerable(Of XElement)

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.

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);  
' Attributes are not nodes, so will not be returned by DescendantNodes.  
Dim xmlTree As XElement = _  
    <Root Att1="AttributeContent">  
        <Child>Some text  
            <GrandChild>element content</GrandChild>  
        </Child>  
    </Root>  
Dim de = From el In xmlTree.Descendants _  
         Select el  

For Each el In de  
    Console.WriteLine(el.Name)  
Next  

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

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.

public:
 System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Descendants(System::Xml::Linq::XName ^ name);
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName name);
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Descendants (System.Xml.Linq.XName? name);
member this.Descendants : System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement>
Public Function Descendants (name As XName) As IEnumerable(Of XElement)

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 .

// 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);  
' Attributes are not nodes, so will not be returned by the descendants axis.  
Dim xmlTree As XElement = _   
    <Root Att1="AttributeContent">  
         <Child>Some text  
             <GrandChild>element content</GrandChild>  
         </Child>  
     </Root>  

Dim de = From el In xmlTree...<Child> _  
         Select el  

For Each el In de  
    Console.WriteLine(el.Name)  
Next  

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.

// 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);  
Imports <xmlns:aw = "http://www.adventure-works.com">  

Module Module1  
    Sub Main()  
        ' Attributes are not nodes, so will not be returned by the descendants axis.  
        Dim xmlTree As XElement = _   
            <aw:Root aw:Att1="AttributeContent">  
                 <aw:Child>Some text  
                     <aw:GrandChild>element content</aw:GrandChild>  
                 </aw:Child>  
             </aw:Root>  

        Dim de = From el In xmlTree...<aw:Child> _  
                 Select el  

        For Each el In de  
            Console.WriteLine(el.Name)  
        Next  
    End Sub  
End Module  

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