Im XML-Dokument einen neuen Eintrag hinzufügen?`



  • Hallo, ich habe folgendes XML-Dokument:

    <userdata>  
      <login name="patrick" password="Test123">
        <user id="65534" vorname="patrick" name="richert" straße="heidehöhe 34" stadt="braunschweig" />    
      </login>
      <login name="hans" password="start">
        <user id="773445" vorname="hans" name="blub" straße="xxx 23" stadt="berlin" />
      </login>
      <login name="franz" password="login">
        <user id="345345" vorname="franz" name="müller" straße="hortweg" stadt="munich" />
      </login>
    </userdata>
    

    Wie kann man nun jedes mal einen neuen Knoten <login>..</login> für einen neuen User erstellen, ohne die alten zu überschreiben?



  • hab grad lust #gg

    //ausn kopf

    XMlDocument document = new XmlDocument();
    docuemnt.Load(yourFile);
    
    XmlElement root = document.GetDocumentElement()
    root.AppendChild(CreateLogInNode("patrick", "Test123", "65534", "patrick", "richert", "heidehöhe 34" ,"braunschweig"));
    
    docuemnt.Save(yourFile);
    
    XmlElement CreateLogInNode(string login, string pw, int id, string firstname, string lastname, string street, string city)
    {
        XmlElement element = document.CreateElement("login");
        element.SetAttribute("name", login);
        element.SetAttribute("password", pw);
        element.AppendChild(CreateUserNode(pw, id, firstname, lastname, street, city));
        return element
    }
    
    XmlElement CreateUserNode(int id, string firstname, string lastname, string street, string city)
    {
        XmlElement element = document.CreateElement("user");
        element.SetAttribute("id", id.ToString());
        element.SetAttribute("vorname", firstname);
        element.SetAttribute("name", lastname);
        element.SetAttribute("straße", street);
        element.SetAttribute("stadt", city);
        return element;
    }
    

    // tippfehler und falsche bezeichnungen vorbehalten - war in ~1 min runtergetippt

    junge, das sind xml basics



  • Mit deinem Code wird nix gespeichert, muss das Dokument nicht geschloßen werden?

    xmlDoc = new XmlDocument();      
    xmlDoc.Load(MapPath("UserData.xml"));
    
    XmlElement root = xmlDoc.DocumentElement;
    root.AppendChild(CreateLogInNode("USER", "PASSWORT", "666", "HANZ", "BLAAA", "STRAßE", "CITY"));
    


  • kernel64 schrieb:

    Mit deinem Code wird nix gespeichert, muss das Dokument nicht geschloßen werden?

    xmlDoc = new XmlDocument();      
    xmlDoc.Load(MapPath("UserData.xml"));
    
    XmlElement root = xmlDoc.DocumentElement;
    root.AppendChild(CreateLogInNode("USER", "PASSWORT", "666", "HANZ", "BLAAA", "STRAßE", "CITY"));
    

    IN einer Zeit in der Lesen nunmal nicht mehr an unseren Schulen gelernt wird ist es verständlich wenn eine so kryptische Zeile wie:

    Mr Evil schrieb:

    docuemnt.Save(yourFile);
    

    nicht mehr von jedem verstanden wird.



  • hast du das .Save vergessen?

    // geschlossen werden muss nichts, da nie etwas offen war
    mit Load wird der inahlt eingelesen - und mit save wird die datein dann einfach ueberschrieben


Anmelden zum Antworten