Udostępnij za pośrednictwem


XNode.Remove Metoda

Definicja

Usuwa ten węzeł z węzła nadrzędnego.

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

Wyjątki

Elementem nadrzędnym jest null.

Przykłady

Poniższy przykład usuwa węzeł z węzła nadrzędnego.

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)  

Ten przykład generuje następujące wyniki:

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

Uwagi

W LINQ to XML programowaniu nie należy manipulować ani modyfikować zestawu węzłów podczas wykonywania zapytań dotyczących węzłów w tym zestawie. W praktyce oznacza to, że nie należy iterować po zestawie węzłów i usuwać je. Zamiast tego należy zmaterializować je w List<T> obiekcie przy użyciu ToList metody rozszerzenia. Następnie można wykonać iterację po liście, aby usunąć węzły. Aby uzyskać więcej informacji, zobacz Mixed Deklaratative Code/Imperatywne usterki kodu (LINQ to XML).

Alternatywnie, jeśli chcesz usunąć zestaw węzłów, zaleca się użycie Extensions.Remove metody . Ta metoda kopiuje węzły do listy, a następnie wykonuje iterację po liście, aby usunąć węzły.

Ta metoda spowoduje wywołanie zdarzeń Changed i Changing .

Obiekt XContainer przechowuje węzły podrzędne jako połączoną ze sobą listę XNode obiektów. Oznacza to, że Remove metoda musi przechodzić przez listę bezpośrednich węzłów podrzędnych w kontenerze nadrzędnym. W związku z tym użycie tej metody może mieć wpływ na wydajność.

Dotyczy

Zobacz też