XNode.PreviousNode Property


Gets the previous sibling node of this node.

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

Public ReadOnly Property PreviousNode As XNode

Property Value

Type: System.Xml.Linq.XNode

The XNode that contains the previous sibling node.

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.

The following example uses this property to loop through nodes.

                Dim xmlTree As XElement = _
        <Child1>1</Child1>Some Text<Child2>2
            <GrandChild>GrandChild Content</GrandChild>
        <!--a comment-->

Dim node As XNode = xmlTree.Element("Child2")
    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

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

This example produces the following output:

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

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top