Extensions.Elements Yöntem
Tanım
Kaynak koleksiyondaki her öğe ve belgenin alt öğelerinin bir koleksiyonunu döndürür.Returns a collection of the child elements of every element and document in the source collection.
Aşırı Yüklemeler
Elements<T>(IEnumerable<T>) |
Kaynak koleksiyondaki her öğe ve belgenin alt öğelerinin bir koleksiyonunu döndürür.Returns a collection of the child elements of every element and document in the source collection. |
Elements<T>(IEnumerable<T>, XName) |
Kaynak koleksiyondaki her öğe ve belge için alt öğelerin filtrelenmiş bir koleksiyonunu döndürür.Returns a filtered collection of the child elements of every element and document in the source collection. Yalnızca eşleşen öğeler XName koleksiyona dahil edilir.Only elements that have a matching XName are included in the collection. |
Açıklamalar
Visual Basic XName , kaynak koleksiyondaki her öğe için belirtilen tüm alt öğeleri bulmanızı sağlayan tümleşik öğeler eksenini içerir.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.
Bu yöntem ertelenmiş yürütmeyi kullanır.This method uses deferred execution.
Elements<T>(IEnumerable<T>)
Kaynak koleksiyondaki her öğe ve belgenin alt öğelerinin bir koleksiyonunu döndürür.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)
Tür Parametreleri
- T
Uygulamasındaki nesnelerinin türü source
, ile sınırlıdır XContainer .The type of the objects in source
, constrained to XContainer.
Parametreler
- source
- IEnumerable<T>
IEnumerable<T> XElement Kaynak koleksiyonu içeren bir.An IEnumerable<T> of XElement that contains the source collection.
Döndürülenler
IEnumerable<T> XElement Kaynak koleksiyondaki her öğe veya belgenin alt öğelerinden biri.An IEnumerable<T> of XElement of the child elements of every element or document in the source collection.
Örnekler
Aşağıdaki örnek öğesi adına sahip öğe koleksiyonunu alır Child
.The following example retrieves a collection of elements with the element name of Child
. Daha sonra bu eksen yöntemini koleksiyonun tüm alt öğelerini almak için kullanır.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
Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
Aşağıdakiler aynı örnektir, ancak bu örnekte XML bir ad alanıdır.The following is the same example, but in this case the XML is in a namespace. Daha fazla bilgi için bkz. XML ad alanları Ile çalışma.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
Bu örnek aşağıdaki çıktıyı üretir: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>
Açıklamalar
Visual Basic, kaynak koleksiyondaki her öğe için belirtilen tüm alt öğeleri bulmanızı sağlayan tümleşik öğeler eksenini içerse de XName , kaynak koleksiyondaki her öğe için her bir alt öğenin koleksiyonunu almanızı sağlayan tümleşik bir öğe ekseni yoktur.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.
Bu yöntem ertelenmiş yürütmeyi kullanır.This method uses deferred execution.
Ayrıca bkz.
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- LINQ to XML'e genel bakışLINQ to XML overview
Şunlara uygulanır
Elements<T>(IEnumerable<T>, XName)
Kaynak koleksiyondaki her öğe ve belge için alt öğelerin filtrelenmiş bir koleksiyonunu döndürür.Returns a filtered collection of the child elements of every element and document in the source collection. Yalnızca eşleşen öğeler XName koleksiyona dahil edilir.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)
Tür Parametreleri
- T
Uygulamasındaki nesnelerinin türü source
, ile sınırlıdır XContainer .The type of the objects in source
, constrained to XContainer.
Parametreler
- source
- IEnumerable<T>
IEnumerable<T> XElement Kaynak koleksiyonu içeren bir.An IEnumerable<T> of XElement that contains the source collection.
Döndürülenler
IEnumerable<T> XElement Kaynak koleksiyondaki her öğe ve belgenin alt öğelerinden biri.An IEnumerable<T> of XElement of the child elements of every element and document in the source collection. Yalnızca eşleşen öğeler XName koleksiyona dahil edilir.Only elements that have a matching XName are included in the collection.
Örnekler
Belirli bir derinlikte belirtilen bir ada sahip tüm öğeleri almak istediğinizde bu genişletme yöntemi faydalıdır.This extension method is useful when you want to retrieve all elements with a specified name at a particular depth. Belge çok normal ise bu oldukça kolaydır, ancak belge düzensiz ise biraz daha zor olabilir.This is easy if the document is very regular, but if the document is irregular, it can be a bit more difficult. Aşağıdaki örnekte öğelerin alt öğesi olan tüm öğeleri almak istiyoruz aaa
Item
.In the following example, we want to retrieve all aaa
elements that are children of Item
elements. Verilen bir Item
öğe bir öğe içerebilir veya içermeyebilir aaa
.A given Item
element may or may not contain an aaa
element. Bu, aşağıdaki gibi bu genişletme yöntemi kullanılarak kolayca gerçekleştirilir: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
Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:
<aaa>1</aaa>
<aaa>4</aaa>
Aşağıdakiler aynı örnektir, ancak bu örnekte XML bir ad alanıdır.The following is the same example, but in this case the XML is in a namespace. Daha fazla bilgi için bkz. XML ad alanları Ile çalışma.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
Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:
<aaa xmlns="http://www.adventure-works.com">1</aaa>
<aaa xmlns="http://www.adventure-works.com">4</aaa>
Açıklamalar
Visual Basic kullanıcılar, bir koleksiyondaki her öğenin alt öğelerini almak için tümleşik öğeler eksenini kullanabilir.Visual Basic users can use the integrated elements axis to retrieve the child elements of every element in a collection.
Bu yöntem ertelenmiş yürütmeyi kullanır.This method uses deferred execution.
Ayrıca bkz.
- DescendantNodesAndSelf()
- DescendantsAndSelf()
- DescendantNodes()
- Descendants()
- Attributes
- LINQ to XML'e genel bakışLINQ to XML overview