XNode.NextNode Property (System.Xml.Linq)

Switch View :
ScriptFree
.NET Framework Class Library
XNode.NextNode Property

Gets the next sibling node of this node.

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

Visual Basic
Public ReadOnly Property NextNode As XNode
	Get
C#
public XNode NextNode { get; }
Visual C++
public:
property XNode^ NextNode {
	XNode^ get ();
}
F#
member NextNode : XNode

Property Value

Type: System.Xml.Linq.XNode
The XNode that contains the next sibling node.
Remarks

If this XNode does not have a parent, or if there is no next node, this property returns null.

Examples

The following example uses this property to loop through nodes.

C#
XElement xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XText("Some Text"),
    new XElement("Child2",
        2,
        new XElement("GrandChild", "GrandChild Content")
    ),
    new XComment("a comment"),
    new XElement("Child3")
);
XNode node = xmlTree.Element("Child2");
do {
    StringBuilder sb = new StringBuilder();
    sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)));
    switch (node.NodeType)
    {
        case XmlNodeType.Text:
            sb.Append((node as XText).Value);
            break;
        case XmlNodeType.Element:
            sb.Append((node as XElement).Name);
            break;
        case XmlNodeType.Comment:
            sb.Append((node as XComment).Value);
            break;
    }
    Console.WriteLine(sb.ToString());
}
while ((node = node.NextNode) != null);
Visual Basic
Dim xmlTree As XElement = _ 
        <Root>
            <Child1>1</Child1>Some Text
            <Child2>2
                <GrandChild>GrandChild Content</GrandChild>
            </Child2>
            <!--a comment-->
            <Child3>3</Child3>
        </Root>

Dim node As XNode = xmlTree.Element("Child2")
Do
    Dim sb As StringBuilder = New StringBuilder()
    sb.Append(String.Format("NodeType: {0}", node.NodeType.ToString().PadRight(10)))
    Select Case node.NodeType
        Case XmlNodeType.Text
            sb.Append(DirectCast(node, XText).Value)
        Case XmlNodeType.Element
            sb.Append(DirectCast(node, XElement).Name)
        Case XmlNodeType.Comment
            sb.Append(DirectCast(node, XComment).Value)
    End Select
    Console.WriteLine(sb.ToString())

    node = node.NextNode
Loop While (Not (node Is Nothing))

This example produces the following output:

NodeType: Element   Child2
NodeType: Comment   a comment
NodeType: Element   Child3
Version Information

.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Other Resources