Extensions.Elements Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.
Sobrecargas
Elements<T>(IEnumerable<T>) |
Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen. |
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. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente. |
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.
Este método usa la ejecución diferida.
Elements<T>(IEnumerable<T>)
- Source:
- Extensions.cs
- Source:
- Extensions.cs
- Source:
- Extensions.cs
Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.
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;
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.
Parámetros
- source
- IEnumerable<T>
Interfaz IEnumerable<T> de XElement que contiene la colección de origen.
Devoluciones
Interfaz IEnumerable<T> de XElement de los elementos secundarios de todos los elementos o documentos de la colección de origen.
Ejemplos
En el ejemplo siguiente se recupera una colección de elementos con el nombre de elemento de Child
. A continuación, usa este método de eje para recuperar todos los elementos secundarios de la colección.
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:
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
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.
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:
<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 encontrar todos los elementos secundarios con un especificado XName para cada elemento de la colección de origen, no hay ningún eje de elementos integrados que le permita recuperar una colección de todos los elementos secundarios de cada elemento de la colección de origen.
Este método usa la ejecución diferida.
Consulte también
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Información general de LINQ to XML
Se aplica a
Elements<T>(IEnumerable<T>, XName)
- Source:
- Extensions.cs
- Source:
- Extensions.cs
- Source:
- Extensions.cs
Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.
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;
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.
Parámetros
- source
- IEnumerable<T>
Interfaz IEnumerable<T> de XElement que contiene la colección de origen.
Devoluciones
Interfaz IEnumerable<T> de XElement de los elementos secundarios de todos los elementos y documentos de la colección de origen. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.
Ejemplos
Este método de extensión es útil cuando desea recuperar todos los elementos con un nombre especificado en una profundidad determinada. Esto es fácil si el documento es muy regular, pero si el documento es irregular, puede ser un poco más difícil. En el ejemplo siguiente, queremos recuperar todos los aaa
elementos secundarios de Item
los elementos. Un elemento determinado Item
puede contener o no un aaa
elemento . Esto se logra fácilmente con este método de extensión, como se indica a continuación:
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:
<aaa>1</aaa>
<aaa>4</aaa>
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.
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:
<aaa xmlns="http://www.adventure-works.com">1</aaa>
<aaa xmlns="http://www.adventure-works.com">4</aaa>
Comentarios
Los usuarios de Visual Basic pueden usar el eje de elementos integrados para recuperar los elementos secundarios de cada elemento de una colección.
Este método usa la ejecución diferida.
Consulte también
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Información general de LINQ to XML