Hinzufügen von Elementen, Attributen und Knoten zu einer XML-Struktur (LINQ to XML)

Sie können einer XML-Struktur Inhalte (Elemente, Attribute, Kommentare, Verarbeitungsanweisungen, Text und CDATA) hinzufügen.

Methoden zum Hinzufügen von Inhalt

Die folgenden Methoden fügen einem XElement oder einem XDocument untergeordneten Inhalt hinzu:

Methode BESCHREIBUNG
Add Fügt Inhalt am Ende des untergeordneten Inhalts des XContainer hinzu.
AddFirst Fügt Inhalt vor dem untergeordneten Inhalt des XContainer hinzu.

Die folgenden Methoden fügen Inhalt als nebengeordnete Knoten eines XNode hinzu. Der Knoten, dem Sie am häufigsten nebengeordneten Inhalt hinzufügen, ist XElement, obwohl Sie gültigen nebengeordneten Inhalt auch anderen Knotentypen hinzufügen können, z. B. XText oder XComment.

Methode BESCHREIBUNG
AddAfterSelf Fügt Inhalt nach dem XNode hinzu.
AddBeforeSelf Fügt Inhalt vor dem XNode hinzu.

Beispiel: Erstellen von zwei XML-Strukturen und Ändern einer der beiden Strukturen

Das folgende Beispiel erstellt zwei XML-Strukturen und ändert dann eine der beiden.

var srcTree = new XElement("Root",
    new XElement("Element1", 1),
    new XElement("Element2", 2),
    new XElement("Element3", 3),
    new XElement("Element4", 4),
    new XElement("Element5", 5)
);
var xmlTree = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5)
);
xmlTree.Add(new XElement("NewChild", "new content"));
xmlTree.Add(
    from el in srcTree.Elements()
    where (int)el > 3
    select el
);
// Even though Child9 doesn't exist in srcTree, the following statement won't
// throw an exception, and nothing will be added to xmlTree.
xmlTree.Add(srcTree.Element("Child9"));
Console.WriteLine(xmlTree);
Dim srcTree As XElement =
    <Root>
        <Element1>1</Element1>
        <Element2>2</Element2>
        <Element3>3</Element3>
        <Element4>4</Element4>
        <Element5>5</Element5>
    </Root>
Dim xmlTree As XElement =
    <Root>
        <Child1>1</Child1>
        <Child2>2</Child2>
        <Child3>3</Child3>
        <Child4>4</Child4>
        <Child5>5</Child5>
    </Root>

xmlTree.Add(<NewChild>new content</NewChild>)
xmlTree.Add(
    From el In srcTree.Elements()
    Where CInt(el) > 3
    Select el)

' Even though Child9 doesn't exist in srcTree, the following statement
' won't throw an exception, and nothing will be added to xmlTree.
xmlTree.Add(srcTree.Element("Child9"))
Console.WriteLine(xmlTree)

Dieses Beispiel erzeugt die folgende Ausgabe:

<Root>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
  <NewChild>new content</NewChild>
  <Element4>4</Element4>
  <Element5>5</Element5>
</Root>