XNode.Remove Method ()
Removes this node from its parent.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
In LINQ to XML programming, you should not manipulate or modify a set of nodes while you are querying for nodes in that set. In practical terms, this means that you should not iterate over a set of nodes and remove them. Instead, you should materialize them into a List(Of T) by using the ToList(Of TSource) extension method. Then, you can iterate over the list to remove the nodes. For more information, see Mixed Declarative Code-Imperative Code Bugs (LINQ to XML).
Alternatively, if you want to remove a set of nodes, it is recommended that you use the Extensions.Remove method. This method copies the nodes to a list, and then iterates over the list to remove the nodes.
The XContainer stores its child nodes as a singly-linked list of XNode objects. This means that the method must traverse the list of direct child nodes under the parent container. Therefore, using this method might affect your performance.
The following example removes a node from its parent.
Dim xmlTree As XElement = _ <Root> <Child1>child1 content</Child1> <Child2>child2 content</Child2> <Child3>child3 content</Child3> <Child4>child4 content</Child4> <Child5>child5 content</Child5> </Root> Dim child3 As XElement = xmlTree.<Child3>(0) child3.Remove() Console.WriteLine(xmlTree)
This example produces the following output:
Available since 8
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Available since 8.1