XElement.DescendantNodesAndSelf Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a collection of nodes that contain this element, and all descendant nodes of this element, in document order.
public:
System::Collections::Generic::IEnumerable<System::Xml::Linq::XNode ^> ^ DescendantNodesAndSelf();
public System.Collections.Generic.IEnumerable<System.Xml.Linq.XNode> DescendantNodesAndSelf ();
member this.DescendantNodesAndSelf : unit -> seq<System.Xml.Linq.XNode>
Public Function DescendantNodesAndSelf () As IEnumerable(Of XNode)
Returns
An IEnumerable<T> of XNode that contain this element, and all descendant nodes of this element, in document order.
Examples
The following example creates an XML tree, and then uses this .
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)
Console.WriteLine((node as XElement).Name);
else
Console.WriteLine(node);
}
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
Console.WriteLine(DirectCast(node, XElement).Name)
Else
Console.WriteLine(node)
End If
Next
This example produces the following output:
Root
Child
Some text
GrandChild
element content
Remarks
This method uses deferred execution.
Applies to
See also
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.