Extensions.Elements Metoda
Definice
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.Returns a collection of the child elements of every element and document in the source collection.
Přetížení
Elements<T>(IEnumerable<T>) |
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.Returns a collection of the child elements of every element and document in the source collection. |
Elements<T>(IEnumerable<T>, XName) |
Vrátí filtrovanou kolekci podřízených prvků každého elementu a dokumentu ve zdrojové kolekci.Returns a filtered collection of the child elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající spárování XName .Only elements that have a matching XName are included in the collection. |
Poznámky
Visual Basic obsahuje osu integrovaných prvků, která umožňuje najít všechny podřízené prvky se zadaným XName pro každý prvek ve zdrojové kolekci.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.
Tato metoda používá odložené provádění.This method uses deferred execution.
Elements<T>(IEnumerable<T>)
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.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;
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)
Parametry typu
- T
Typ objektů v source
, omezený na XContainer .The type of the objects in source
, constrained to XContainer.
Parametry
- source
- IEnumerable<T>
Obsahující IEnumerable<T> XElement zdrojovou kolekci.An IEnumerable<T> of XElement that contains the source collection.
Návraty
IEnumerable<T>Z XElement podřízených prvků každého prvku nebo dokumentu ve zdrojové kolekci.An IEnumerable<T> of XElement of the child elements of every element or document in the source collection.
Příklady
Následující příklad načte kolekci prvků s názvem elementu Child
.The following example retrieves a collection of elements with the element name of Child
. Pak použije tuto metodu osy k načtení všech podřízených prvků kolekce.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
Tento příklad vytvoří následující výstup:This example produces the following output:
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
Následuje stejný příklad, ale v tomto případě je XML v oboru názvů.The following is the same example, but in this case the XML is in a namespace. Další informace najdete v tématu práce s obory názvů XML.For more information, see Work 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
Tento příklad vytvoří následující výstup: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>
Poznámky
I když Visual Basic obsahuje osu integrovaných prvků, která umožňuje najít všechny podřízené prvky se zadaným XName pro každý prvek ve zdrojové kolekci, neexistuje žádná z přidružených prvků osy, která umožňuje načíst kolekci všech podřízených elementů pro každý prvek ve zdrojové kolekci.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.
Tato metoda používá odložené provádění.This method uses deferred execution.
Viz také
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Přehled LINQ to XMLLINQ to XML overview
Platí pro
Elements<T>(IEnumerable<T>, XName)
Vrátí filtrovanou kolekci podřízených prvků každého elementu a dokumentu ve zdrojové kolekci.Returns a filtered collection of the child elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající spárování XName .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;
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)
Parametry typu
- T
Typ objektů v source
, omezený na XContainer .The type of the objects in source
, constrained to XContainer.
Parametry
- source
- IEnumerable<T>
Obsahující IEnumerable<T> XElement zdrojovou kolekci.An IEnumerable<T> of XElement that contains the source collection.
Návraty
IEnumerable<T>Z XElement podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.An IEnumerable<T> of XElement of the child elements of every element and document in the source collection. Do kolekce jsou zahrnuty pouze prvky, které mají odpovídající spárování XName .Only elements that have a matching XName are included in the collection.
Příklady
Tato metoda rozšíření je užitečná, když chcete načíst všechny prvky se zadaným názvem v konkrétní hloubkě.This extension method is useful when you want to retrieve all elements with a specified name at a particular depth. To je snadné, pokud je dokument velmi pravidelný, ale pokud je dokument nepravidelný, může být trochu obtížnější.This is easy if the document is very regular, but if the document is irregular, it can be a bit more difficult. V následujícím příkladu chceme načíst všechny aaa
prvky, které jsou podřízenými Item
prvky.In the following example, we want to retrieve all aaa
elements that are children of Item
elements. Daný Item
element může nebo nemusí obsahovat aaa
element.A given Item
element may or may not contain an aaa
element. Tímto způsobem lze snadno dosáhnout pomocí této metody rozšíření: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
Tento příklad vytvoří následující výstup:This example produces the following output:
<aaa>1</aaa>
<aaa>4</aaa>
Následuje stejný příklad, ale v tomto případě je XML v oboru názvů.The following is the same example, but in this case the XML is in a namespace. Další informace najdete v tématu práce s obory názvů XML.For more information, see Work 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
Tento příklad vytvoří následující výstup:This example produces the following output:
<aaa xmlns="http://www.adventure-works.com">1</aaa>
<aaa xmlns="http://www.adventure-works.com">4</aaa>
Poznámky
Visual Basic uživatelé mohou použít osu integrovaných prvků k načtení podřízených prvků každého prvku v kolekci.Visual Basic users can use the integrated elements axis to retrieve the child elements of every element in a collection.
Tato metoda používá odložené provádění.This method uses deferred execution.
Viz také
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Přehled LINQ to XMLLINQ to XML overview