Extensions.Elements Extensions.Elements Extensions.Elements Extensions.Elements Method

Definición

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

Sobrecargas

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

Comentarios

Visual Basic contiene un eje de elementos integrado que permite buscar todos los elementos secundarios con un especificado XName para cada elemento de la colección de origen.Visual Basic contains an integrated elements axis that allows you to find all child elements with a specified XName for every element in the source collection.

Este método usa la ejecución diferida.This method uses deferred execution.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Elements(System::Collections::Generic::IEnumerable<T> ^ source);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T> (this System.Collections.Generic.IEnumerable<T> source) where T : System.Xml.Linq.XContainer;
static member Elements : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Elements(Of T As XContainer) (source As IEnumerable(Of T)) As IEnumerable(Of XElement)

Parámetros de tipo

T

Tipo de los objetos de source, restringido a XContainer.The type of the objects in source, constrained to XContainer.

Parámetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Interfaz IEnumerable<T> de XElement que contiene la colección de origen.An IEnumerable<T> of XElement that contains the source collection.

Devoluciones

Interfaz IEnumerable<T> de XElement de los elementos secundarios de todos los elementos o documentos de la colección de origen.An IEnumerable<T> of XElement of the child elements of every element or document in the source collection.

Ejemplos

En el ejemplo siguiente se recupera una colección de elementos con el nombre de Childelemento de.The following example retrieves a collection of elements with the element name of Child. A continuación, usa este método de eje para recuperar todos los elementos secundarios de la colección.It then uses this axis method to retrieve all child elements of the collection.

XElement xmlTree = new XElement("Root",  
    new XElement("Child",  
        new XElement("GrandChild1", 1),  
        new XElement("GrandChild2", 2)  
    ),  
    new XElement("Child",  
        new XElement("GrandChild3", 3),  
        new XElement("GrandChild4", 4)  
    ),  
    new XElement("Child",  
        new XElement("GrandChild5", 5),  
        new XElement("GrandChild6", 6)  
    )  
);  
  
IEnumerable<XElement> allGrandChildren =  
    from el in xmlTree.Elements("Child").Elements()  
    select el;  
  
foreach (XElement el in allGrandChildren)  
    Console.WriteLine(el);  
Dim xmlTree As XElement = _  
     <Root>  
          <Child>  
              <GrandChild1>1</GrandChild1>  
              <GrandChild2>2</GrandChild2>  
          </Child>  
  
          <Child>  
              <GrandChild3>3</GrandChild3>  
              <GrandChild4>4</GrandChild4>  
          </Child>  
  
          <Child>  
              <GrandChild5>5</GrandChild5>  
              <GrandChild6>6</GrandChild6>  
          </Child>  
      </Root>  
  
Dim allGrandChildren = From el In xmlTree.<Child>.Elements _  
                       Select el  
  
For Each el As XElement In allGrandChildren  
    Console.WriteLine(el)  
Next  
  

Este ejemplo produce el siguiente resultado:This example produces the following output:

<GrandChild1>1</GrandChild1>  
<GrandChild2>2</GrandChild2>  
<GrandChild3>3</GrandChild3>  
<GrandChild4>4</GrandChild4>  
<GrandChild5>5</GrandChild5>  
<GrandChild6>6</GrandChild6>  

El siguiente ejemplo es el mismo, pero en este caso el XML está en un espacio de nombres.The following is the same example, but in this case the XML is in a namespace. Para obtener más información, vea trabajar con espacios de nombres XML.For more information, see Working with XML Namespaces.

XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = new XElement(aw + "Root",  
    new XElement(aw + "Child",  
        new XElement(aw + "GrandChild1", 1),  
        new XElement(aw + "GrandChild2", 2)  
    ),  
    new XElement(aw + "Child",  
        new XElement(aw + "GrandChild3", 3),  
        new XElement(aw + "GrandChild4", 4)  
    ),  
    new XElement(aw + "Child",  
        new XElement(aw + "GrandChild5", 5),  
        new XElement(aw + "GrandChild6", 6)  
    )  
);  
  
IEnumerable<XElement> allGrandChildren =  
    from el in xmlTree.Elements(aw + "Child").Elements()  
    select el;  
  
foreach (XElement el in allGrandChildren)  
    Console.WriteLine(el);  
Imports <xmlns="http://www.adventure-works.com">  
  
Module Module1  
    Sub Main()  
        Dim xmlTree As XElement = _  
             <Root>  
                 <Child>  
                     <GrandChild1>1</GrandChild1>  
                     <GrandChild2>2</GrandChild2>  
                 </Child>  
  
                 <Child>  
                     <GrandChild3>3</GrandChild3>  
                     <GrandChild4>4</GrandChild4>  
                 </Child>  
  
                 <Child>  
                     <GrandChild5>5</GrandChild5>  
                     <GrandChild6>6</GrandChild6>  
                 </Child>  
             </Root>  
  
        Dim allGrandChildren = From el In xmlTree.<Child>.Elements _  
                               Select el  
  
        For Each el As XElement In allGrandChildren  
            Console.WriteLine(el)  
        Next  
    End Sub  
End Module  
  

Este ejemplo produce el siguiente resultado:This example produces the following output:

<GrandChild1 xmlns="http://www.adventure-works.com">1</GrandChild1>  
<GrandChild2 xmlns="http://www.adventure-works.com">2</GrandChild2>  
<GrandChild3 xmlns="http://www.adventure-works.com">3</GrandChild3>  
<GrandChild4 xmlns="http://www.adventure-works.com">4</GrandChild4>  
<GrandChild5 xmlns="http://www.adventure-works.com">5</GrandChild5>  
<GrandChild6 xmlns="http://www.adventure-works.com">6</GrandChild6>  

Comentarios

Aunque Visual Basic contiene un eje de elementos integrado que permite buscar todos los elementos secundarios con un especificado XName para cada elemento de la colección de origen, no hay ningún eje de elementos integrado que permita recuperar una colección de cada elemento secundario para cada elemento de la colección de origen.Although Visual Basic contains an integrated elements axis that allows you to find all child elements with a specified XName for every element in the source collection, there is no integrated elements axis that allows you to retrieve a collection of every child element for every element in the source collection.

Este método usa la ejecución diferida.This method uses deferred execution.

Consulte también:

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

public:
generic <typename T>
 where T : System::Xml::Linq::XContainer[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ Elements(System::Collections::Generic::IEnumerable<T> ^ source, System::Xml::Linq::XName ^ name);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> Elements<T> (this System.Collections.Generic.IEnumerable<T> source, System.Xml.Linq.XName name) where T : System.Xml.Linq.XContainer;
static member Elements : seq<'T (requires 'T :> System.Xml.Linq.XContainer)> * System.Xml.Linq.XName -> seq<System.Xml.Linq.XElement> (requires 'T :> System.Xml.Linq.XContainer)
<Extension()>
Public Function Elements(Of T As XContainer) (source As IEnumerable(Of T), name As XName) As IEnumerable(Of XElement)

Parámetros de tipo

T

Tipo de los objetos de source, restringido a XContainer.The type of the objects in source, constrained to XContainer.

Parámetros

source
IEnumerable<T> IEnumerable<T> IEnumerable<T> IEnumerable<T>

Interfaz IEnumerable<T> de XElement que contiene la colección de origen.An IEnumerable<T> of XElement that contains the source collection.

name
XName XName XName XName

XName que se va a comparar.The XName to match.

Devoluciones

Interfaz IEnumerable<T> de XElement de los elementos secundarios de todos los elementos y documentos de la colección de origen.An IEnumerable<T> of XElement of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

Ejemplos

Este método de extensión resulta útil cuando se desea recuperar todos los elementos con un nombre especificado en una profundidad determinada.This extension method is useful when you want to retrieve all elements with a specified name at a particular depth. Esto es fácil si el documento es muy regular, pero si el documento es irregular, puede ser un poco más difícil.This is easy if the document is very regular, but if the document is irregular, it can be a bit more difficult. En el ejemplo siguiente, queremos recuperar todos aaa los elementos que son elementos secundarios de Item elementos.In the following example, we want to retrieve all aaa elements that are children of Item elements. Un elemento Item determinado puede contener o no un aaa elemento.A given Item element may or may not contain an aaa element. Esto se consigue fácilmente con este método de extensión, como se indica a continuación:This is easily accomplished using this extension method, as follows:

XElement xmlTree = new XElement("Root",  
    new XElement("Item",  
        new XElement("aaa", 1),  
        new XElement("bbb", 2)  
    ),  
    new XElement("Item",  
        new XElement("ccc", 3),  
        new XElement("aaa", 4)  
    ),  
    new XElement("Item",  
        new XElement("ddd", 5),  
        new XElement("eee", 6)  
    )  
);  
  
IEnumerable<XElement> allGrandChildren =  
    from el in xmlTree.Elements("Item").Elements("aaa")  
    select el;  
  
foreach (XElement el in allGrandChildren)  
    Console.WriteLine(el);  
Dim xmlTree As XElement = _  
    <Root>  
        <Item>  
            <aaa>1</aaa>  
            <bbb>2</bbb>  
        </Item>  
  
        <Item>  
            <ccc>3</ccc>  
            <aaa>4</aaa>  
        </Item>  
  
        <Item>  
            <ddd>5</ddd>  
            <eee>6</eee>  
        </Item>  
    </Root>  
  
Dim allGrandChildren = From el In xmlTree.<Item>.<aaa> _  
                       Select el  
  
For Each el As XElement In allGrandChildren  
    Console.WriteLine(el)  
Next  
  

Este ejemplo produce el siguiente resultado:This example produces the following output:

<aaa>1</aaa>  
<aaa>4</aaa>  

El siguiente ejemplo es el mismo, pero en este caso el XML está en un espacio de nombres.The following is the same example, but in this case the XML is in a namespace. Para obtener más información, vea trabajar con espacios de nombres XML.For more information, see Working with XML Namespaces.

XNamespace aw = "http://www.adventure-works.com";  
XElement xmlTree = new XElement(aw + "Root",  
    new XElement(aw + "Item",  
        new XElement(aw + "aaa", 1),  
        new XElement(aw + "bbb", 2)  
    ),  
    new XElement(aw + "Item",  
        new XElement(aw + "ccc", 3),  
        new XElement(aw + "aaa", 4)  
    ),  
    new XElement(aw + "Item",  
        new XElement(aw + "ddd", 5),  
        new XElement(aw + "eee", 6)  
    )  
);  
  
IEnumerable<XElement> allGrandChildren =  
    from el in xmlTree.Elements(aw + "Item").Elements(aw + "aaa")  
    select el;  
  
foreach (XElement el in allGrandChildren)  
    Console.WriteLine(el);  
Imports <xmlns="http://www.adventure-works.com">  
  
Module Module1  
    Sub Main()  
        Dim xmlTree As XElement = _  
            <Root>  
                <Item>  
                    <aaa>1</aaa>  
                    <bbb>2</bbb>  
                </Item>  
  
                <Item>  
                    <ccc>3</ccc>  
                    <aaa>4</aaa>  
                </Item>  
  
                <Item>  
                    <ddd>5</ddd>  
                    <eee>6</eee>  
                </Item>  
            </Root>  
  
        Dim allGrandChildren = From el In xmlTree.<Item>.<aaa> _  
                               Select el  
  
        For Each el As XElement In allGrandChildren  
            Console.WriteLine(el)  
        Next  
    End Sub  
End Module  
  

Este ejemplo produce el siguiente resultado:This example produces the following output:

<aaa xmlns="http://www.adventure-works.com">1</aaa>  
<aaa xmlns="http://www.adventure-works.com">4</aaa>  

Comentarios

Visual Basic los usuarios pueden utilizar el eje de elementos integrados para recuperar los elementos secundarios de todos los elementos de una colección.Visual Basic users can use the integrated elements axis to retrieve the child elements of every element in a collection.

Este método usa la ejecución diferida.This method uses deferred execution.

Consulte también:

Se aplica a