Extensions.Descendants(Of T) Method (IEnumerable(Of T))
Returns a collection of elements that contains the descendant elements of every element and document in the source collection.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
<ExtensionAttribute> Public Shared Function Descendants(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 XContainer that contains the source collection.
Return Value
Type: System.Collections.Generic.IEnumerable(Of XElement)An IEnumerable(Of T) of XElement that contains the descendant elements of every element and document in the source collection.
Type Parameters
- T
The type of the objects in source, constrained to XContainer.
Visual Basic users can use the integrated XML descendant axis to retrieve the descendant elements of a collection. However, the integrated axis only retrieves descendants with a specified name. If Visual Basic users want to retrieve all descendants, then they must use this axis method explicitly.
This method uses deferred execution.
The following example retrieves a collection of elements, and then uses this axis method to retrieve all descendent elements of every item in the collection of elements.
Dim xmlTree As XElement = _
<Root>
<Para>
<t>This is some text </t>
<b>
<t>where</t>
</b>
<t> all of the nodes must be concatenated. </t>
</Para>
<Para>
<t>This is a second sentence.</t>
</Para>
</Root>
Dim elList = From el In xmlTree.<Para>.Descendants _
Select el
For Each el As XElement In elList
Console.WriteLine(el)
Next
This example produces the following output:
<t>This is some text </t> <b> <t>where</t> </b> <t>where</t> <t> all of the nodes must be concatenated. </t> <t>This is a second sentence.</t>
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>
<Para>
<t>This is some text </t>
<b>
<t>where</t>
</b>
<t> all of the nodes must be concatenated. </t>
</Para>
<Para>
<t>This is a second sentence.</t>
</Para>
</Root>
Dim elList = From el In xmlTree.<Para>.Descendants _
Select el
For Each el As XElement In elList
Console.WriteLine(el)
Next
End Sub
End Module
This example produces the following output:
<t xmlns="http://www.adventure-works.com">This is some text </t> <b xmlns="http://www.adventure-works.com"> <t>where</t> </b> <t xmlns="http://www.adventure-works.com">where</t> <t xmlns="http://www.adventure-works.com"> all of the nodes must be concatenated. </t> <t xmlns="http://www.adventure-works.com">This is a second sentence.</t>
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