XElement.DescendantNodesAndSelf Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Returns a collection of nodes that contain this element, and all descendant nodes of this element, in document order.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

Syntax

'Declaration
Public Function DescendantNodesAndSelf As IEnumerable(Of XNode)
public IEnumerable<XNode> DescendantNodesAndSelf()

Return Value

Type: System.Collections.Generic.IEnumerable<XNode>
An IEnumerable<T> of XNode that contain this element, and all descendant nodes of this element, in document order.

Remarks

This method uses deferred execution.

Examples

The following example creates an XML tree, and then uses this axis method.

Dim output As New StringBuilder
Dim xmlTree As XElement = _
    <Root Att1="AttributeContent">
        <Child>Some text<GrandChild>element content</GrandChild>
        </Child>
    </Root>

Dim dnas As IEnumerable(Of XNode) = _
    From node In xmlTree.DescendantNodesAndSelf() _
    Select node


For Each node In dnas
    If TypeOf node Is XElement Then
        output.Append(DirectCast(node, XElement).Name)
        output.Append(Environment.NewLine)
    Else
        output.Append(node)
        output.Append(Environment.NewLine)
    End If
Next


OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    // Attributes are not nodes, so will not be returned by DescendantNodesAndSelf.
    new XAttribute("Att1", "AttributeContent"),
    new XElement("Child",
        new XText("Some text"),
        new XElement("GrandChild", "element content")
    )
);
IEnumerable<XNode> dnas =
    from node in xmlTree.DescendantNodesAndSelf()
    select node;
foreach (XNode node in dnas)
{
    if (node is XElement)
        output.Append((node as XElement).Name + Environment.NewLine);
    else
        output.Append(node + Environment.NewLine);
}

OutputTextBlock.Text = output.ToString();

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.