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