Extensions.Elements(Of T) Method (IEnumerable(Of T))
Returns a collection of the child elements of every element and document in the source collection.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
<ExtensionAttribute> Public Shared Function Elements(Of T As XContainer) ( source As IEnumerable(Of T) ) As IEnumerable(Of XElement)
Parameters
- source
-
Type:
System.Collections.Generic.IEnumerable(Of T)
An IEnumerable(Of T) of XElement that contains the source collection.
Return Value
Type: System.Collections.Generic.IEnumerable(Of XElement)An IEnumerable(Of T) of XElement of the child elements of every element or document in the source collection.
Type Parameters
- T
The type of the objects in source, constrained to XContainer.
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.
This method uses deferred execution.
The following example retrieves a collection of elements with the element name of Child. It then uses this axis method to retrieve all child elements of the collection.
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
This example produces the following output:
<GrandChild1>1</GrandChild1> <GrandChild2>2</GrandChild2> <GrandChild3>3</GrandChild3> <GrandChild4>4</GrandChild4> <GrandChild5>5</GrandChild5> <GrandChild6>6</GrandChild6>
The following is the same example, but in this case the XML is in a namespace. For more information, see Working with XML Namespaces.
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
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>
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1