XNode.PreviousNode Property

Definition

Gets the previous sibling node of this node.

C#
public System.Xml.Linq.XNode PreviousNode { get; }
C#
public System.Xml.Linq.XNode? PreviousNode { get; }

Property Value

The XNode that contains the previous sibling node.

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.PreviousNode) != null);  

This example produces the following output:

NodeType: Element   Child2  
NodeType: Text      Some Text  
NodeType: Element   Child1  

Remarks

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

The XContainer stores its child nodes as a singly-linked list of XNode objects. This means that the PreviousNode property must traverse the list of direct child nodes under the parent container. Therefore, using this property might affect your performance.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

See also