[C#] XML Datei bearbeiten

Katzenbauer

Erfahrenes Mitglied
Ich schreibe gerade ein Programm, dass sich als "Datenbank" auf eine xml Datei stützt. Das parsen und schreiben von XML Dateien geht mit XmlTextWriter und XmlTextReader ganz gut.

Nur wie kann ich in eine XML Datei an einer bestimmten Stelle ein Element einfügen? Zum beispiel, wenn das so aussieht:

Code:
<root>
    <users>
        <user name = "peter" password = "test" />
        <user name = "hans" password = "123" />
    </benutzer>
</root>

Wie kann ich jetzt z.B in das User Element "springen" und dort einen neuen User anlegen ohne jetzt ganz lowlevel auf Datei Basis zu arbeiten?
 
Hi!

Das ist zwar nicht direkt mit dem XmlTextWriter geschreiben aber es macht was du verlangst. Hab ich schnell aus einem meiner Werke kopiert. :)
Vielleicht hilft das ja weiter. Musst du jetzt nur noch anpassen...
Code:
XmlDocument xd=new XmlDocument();
xd.Load(path);
XmlNode appendNode = xd.SelectSingleNode("setupInit/AdapterList");
if (appendNode != null) 
{
    XmlNode nodeAdapterBegin=xd.CreateElement("Adapter");//<Adapter></Adapter>
   nodeAdapterBegin.InnerText=name;//<Adapter>name</Adapter>
   XmlAttribute attr=xd.CreateAttribute("ID");//<Adapter ID="id">name</Adapter>
   attr.Value=id;
   nodeAdapterBegin.Attributes.Append(attr);
  appendNode.AppendChild(nodeAdapterBegin);
}
xd.Save(path);

Achso, mein xml-File hat diese Struktur:
Code:
<setupInit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <AdapterList>
    <Adapter ID="test">TestAdapter</Adapter>
    <Adapter ID="test2">Zweiter-Adapter</Adapter>
  </AdapterList>
</setupInit>
 
Zuletzt bearbeitet:
Ja das hilft mir weiter, aber ich mache jetzt aus Einfacheitsgründen einfach einen kompletten Speichervorgang beim Schließen des Programms. So viele Datenmengen sind das auch wieder nicht.

Trotzdem Danke werde das eventuell trotzdem mal Umstellen, wenn ich Zeit habe.
 
Zurück