Extensions.Elements Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.
Přetížení
Elements<T>(IEnumerable<T>) |
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. |
Elements<T>(IEnumerable<T>, XName) |
Vrátí filtrovanou kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. V kolekci jsou zahrnuty pouze prvky, které mají shodu XName . |
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.
Tato metoda používá odložené spuštění.
Elements<T>(IEnumerable<T>)
Vrátí kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci.
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.
Parametry
- source
- IEnumerable<T>
Z IEnumerable<T> XElement toho je zdrojová kolekce.
Návraty
Podřízený IEnumerable<T> prvek XElement každého prvku nebo dokumentu ve zdrojové kolekci.
Příklady
Následující příklad načte kolekci prvků s názvem elementu Child
. Potom pomocí této metody osy načte všechny podřízené prvky kolekce.
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:
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
Následující příklad je stejný, ale v tomto případě je XML v oboru názvů. Další informace naleznete v tématu Práce s obory názvů 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
Tento příklad vytvoří následující výstup:
<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á integrovaná osa prvků, která umožňuje načíst kolekci všech podřízených elementů pro každý prvek ve zdrojové kolekci.
Tato metoda používá odložené spuštění.
Viz také
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Přehled LINQ to XML
Platí pro
Elements<T>(IEnumerable<T>, XName)
Vrátí filtrovanou kolekci podřízených prvků každého prvku a dokumentu ve zdrojové kolekci. V kolekci jsou zahrnuty pouze prvky, které mají shodu XName .
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.
Parametry
- source
- IEnumerable<T>
Z IEnumerable<T> toho XElement je zdrojová kolekce.
Návraty
XElement Podřízených IEnumerable<T> prvků každého prvku a dokumentu ve zdrojové kolekci V kolekci jsou zahrnuty pouze prvky, které mají shodu XName .
Příklady
Tato metoda rozšíření je užitečná, když chcete načíst všechny prvky se zadaným názvem v určité hloubkě. To je snadné, pokud je dokument velmi pravidelný, ale pokud je dokument nepravidelný, může být trochu obtížnější. V následujícím příkladu chceme načíst všechny aaa
prvky, které jsou podřízenými Item
prvky. Daný Item
prvek může nebo nesmí obsahovat aaa
prvek. To se dá snadno provést pomocí této metody rozšíření následujícím způsobem:
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:
<aaa>1</aaa>
<aaa>4</aaa>
Následující příklad je stejný, ale v tomto případě je XML v oboru názvů. Další informace najdete v tématu Práce s obory názvů 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
Tento příklad vytvoří následující výstup:
<aaa xmlns="http://www.adventure-works.com">1</aaa>
<aaa xmlns="http://www.adventure-works.com">4</aaa>
Poznámky
Visual Basic uživatelé můžou pomocí osy integrovaných prvků načíst podřízené prvky každého prvku v kolekci.
Tato metoda používá odložené provádění.
Viz také
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- Přehled LINQ to XML