XNode.Remove 方法

定义

从节点父级中删除此节点。

public:
 void Remove();
public void Remove ();
member this.Remove : unit -> unit
Public Sub Remove ()

例外

父级为 null

示例

以下示例从其父节点中删除节点。

XElement xmlTree = new XElement("Root",  
    new XElement("Child1", "child1 content"),  
    new XElement("Child2", "child2 content"),  
    new XElement("Child3", "child3 content"),  
    new XElement("Child4", "child4 content"),  
    new XElement("Child5", "child5 content")  
);  
XElement child3 = xmlTree.Element("Child3");  
child3.Remove();  
Console.WriteLine(xmlTree);  
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)  

该示例产生下面的输出:

<Root>  
  <Child1>child1 content</Child1>  
  <Child2>child2 content</Child2>  
  <Child4>child4 content</Child4>  
  <Child5>child5 content</Child5>  
</Root>  

注解

在 LINQ to XML 编程中,在查询该集中的节点时,不应操作或修改一组节点。 实际上,这意味着不应循环访问一组节点并删除它们。 相反,应使用 ToList 扩展方法将它们具体化为 List<T> 。 然后,可以循环访问列表以删除节点。 有关详细信息,请参阅 LINQ to XML) (混合声明性代码/命令性代码 Bug

或者,如果要删除一组节点,建议使用 Extensions.Remove 方法。 此方法将节点复制到列表,然后循环访问列表以删除节点。

此方法将引发 ChangedChanging 事件。

将其 XContainer 子节点存储为对象的单独链接列表 XNode 。 这意味着 方法 Remove 必须遍历父容器下的直接子节点列表。 因此,使用此方法可能会影响性能。

适用于

另请参阅