XML / Knoten an Document hinzufügen

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von mox.

    XML / Knoten an Document hinzufügen

    Hallo Community,

    ich habe aktuell das Problem, dass ich nicht weiß wie ich zu einem bestehenden XML Dokument einen neuen Eintrag hinzufügen kann.

    Worum geht´s:
    in einem XML Dokument stehen ein paar Servicepartner die Gebühren verlangen. Nun soll aus 2 Textboxen (name und Gebühr) ein neuer Eintrag erstellt werden wenn Speichern gedrückt wird.

    Das XML Dokument mit 2 Einträgen
    Spoiler anzeigen

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <Datenbank>
    3. <Servicepartner>
    4. <name>Hans</name>
    5. <gebuehren>12</gebuehren>
    6. </Servicepartner>
    7. <Servicepartner>
    8. <name>Paul</name>
    9. <gebuehren>13</gebuehren>
    10. </Servicepartner>
    11. </Datenbank>



    Könnt ihr mir eventuell einen Tipp geben wie ich das am einfachsten umsetzen kann?
    @MajorOli Du musst das Dokument vollständig einlesen.
    Jetzt gibt es mehrere Möglichkeiten.
    Füge dem Knoten <Datenbank> einen Sub-Knoten <Servicepartner> hinzu und speichere alles via XmlDocument ab
    oder
    speichere mit .WriteStartElement("Datenbank"), speichere alle vorhandenen Sub-Knoten <Servicepartner>, danach speicherst Du die neuen Sub-Knoten <Servicepartner>, danach beendest Du den Knoten <Datenbank> mit .WriteEndElement() via XmlWriter.
    Verwende die Methode, die dem Problem besser angepasst ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    C#-Quellcode

    1. XmlDocument doc = new XmlDocument();
    2. doc.Load("XMLFile1.xml");
    3. XmlElement servicepartner = doc.CreateElement("Servicepartner");
    4. XmlElement name = doc.CreateElement("name");
    5. XmlElement gebuehren = doc.CreateElement("gebuehren");
    6. name.InnerText = "mustermann";
    7. gebuehren.InnerText = "11";
    8. servicepartner.AppendChild(name);
    9. servicepartner.AppendChild(gebuehren);
    10. doc.DocumentElement.AppendChild(servicepartner);
    11. doc.Save("XMLFile1.xml");
    Hier könnte meine Signatur stehen.