Klonen oder Anfügen (C#)Cloning vs. Attaching (C#)

Beim Hinzufügen von XNode (inklusive XElement)-Objekten oder XAttribute-Objekten zu einer neuen Struktur werden die Objekte einfach an die XML-Struktur angefügt, falls der neue Inhalt kein übergeordnetes Element besitzt.When adding XNode (including XElement) or XAttribute objects to a new tree, if the new content has no parent, the objects are simply attached to the XML tree. Wenn der neue Inhalt bereits ein übergeordnetes Element besitzt und Bestandteil einer anderen XML-Struktur ist, wird er geklont.If the new content already is parented, and is part of another XML tree, the new content is cloned. Der neu geklonte Inhalt wird dann an die XML-Struktur angefügt.The newly cloned content is then attached to the XML tree.

BeispielExample

Der folgende Code zeigt das Verhalten, wenn Sie einer Struktur ein übergeordnetes Element und ein Element ohne übergeordnetes Element hinzufügen:The following code demonstrates the behavior when you add a parented element to a tree, and when you add an element with no parent to a tree.

// Create a tree with a child element.  
XElement xmlTree1 = new XElement("Root",  
    new XElement("Child1", 1)  
);  

// Create an element that is not parented.  
XElement child2 = new XElement("Child2", 2);  

// Create a tree and add Child1 and Child2 to it.  
XElement xmlTree2 = new XElement("Root",  
    xmlTree1.Element("Child1"),  
    child2  
);  

// Compare Child1 identity.  
Console.WriteLine("Child1 was {0}",  
    xmlTree1.Element("Child1") == xmlTree2.Element("Child1") ?  
    "attached" : "cloned");  

// Compare Child2 identity.  
Console.WriteLine("Child2 was {0}",  
    child2 == xmlTree2.Element("Child2") ?  
    "attached" : "cloned");  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

Child1 was cloned  
Child2 was attached  

Siehe auchSee Also

Creating XML Trees (C#) (Erstellen von XML-Strukturen (C#))Creating XML Trees (C#)