Programmieren - alles kontrollieren 4.947 Themen, 20.745 Beiträge

TreeView aus C# in XML-Datei schreiben?

totherock / 2 Antworten / Baumansicht Nickles

Hallo, ich bräuchte dringend Hilfe!


Ich lese eine XML-Datei in C# in einen TreeView ein und dort manipuliere ich diesen, durch Hinzufügen, Löschen, Kopieren, Editieren, usw. der Knoten.


Nun meine Frage und das eigentliche Problem. Diese neue Struktur des Trees brauche ich wieder als XML-Datei. Wie schreibe ich den TreeView in eine XML-Datei.


Ein konkretes Beispiel wäre super nett, da ich die MSDN schon gelesen habe, da auch viel steht, aber ich krieg das einfach nicht hin.


Vielen herzlichen Dank

bei Antwort benachrichtigen
thomas woelfer totherock „TreeView aus C# in XML-Datei schreiben?“
Optionen

die treeview als solches kannst du nicht in xml serialisieren, denn das ist eine _view_, also eine ansicht, und nicht die datenstruktur als solches.

wenn du eine datenstruktur hast die die treeview abbildet, dann kannst du die im einfachsten fall direkt mit dem xmlserualizer rausschreiben.

wenn du das nicht hast (was ich annehme), dann musst du den baum eben schrittweise von hand auf die platte schreiben. das geht am einfachsten indem du rekursiv ueber alle nodes des baums laeuft.

WM_HOPETHISHELPS

this posting contains no tpyos.
bei Antwort benachrichtigen
Nikon totherock „TreeView aus C# in XML-Datei schreiben?“
Optionen

private void btnCreateXml_Click(object sender, System.EventArgs e)
{
try
{
System.IO.File.Delete("test.xml");
}
catch
{}
StreamWriter textWriter = new StreamWriter("test.xml");
XmlTextWriter n=new XmlTextWriter(textWriter);
n.Formatting=Formatting.Indented;
n.Indentation=2;

foreach(TreeNode node in treeMain.Nodes)
{
WriteXml(node,n);
}
n.Close();

}
private void WriteXml(TreeNode node,XmlTextWriter writer)
{
writer.WriteStartElement("Node");
writer.WriteAttributeString("Text",node.Text);
if(node.Nodes.Count>0)
{
foreach(TreeNode n in node.Nodes)
{
WriteXml(n,writer);
}
}
writer.WriteEndElement();
}

btnCreateXml ist ein Button...

Ist zwar nicht professionell, aber es funktioniert und ist einfach zu verstehen...

Nikon
bei Antwort benachrichtigen