XNode.NextNode Property

Definition

Gets the next sibling node of this node.

public:
 property System::Xml::Linq::XNode ^ NextNode { System::Xml::Linq::XNode ^ get(); };
public System.Xml.Linq.XNode NextNode { get; }
public System.Xml.Linq.XNode? NextNode { get; }
member this.NextNode : System.Xml.Linq.XNode
Public ReadOnly Property NextNode As XNode

Property Value

XNode

The XNode that contains the next sibling node.

Examples

The following example uses this property to loop through nodes.

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);  
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  

Remarks

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

Applies to