Feedback

C# - Treeview in XML schreiben

Veröffentlicht von am 4/7/2006
(2 Bewertungen)
Diese Methode wandelt den Inhalt eines Treeviews in eine XML Datei um.
 public static void exportToXml(TreeView tv, string filename) 
        {
            sr = new StreamWriter(filename, false, System.Text.Encoding.UTF8);
            sr.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");

            IEnumerator ie = tv.Nodes.GetEnumerator();
            if (ie.MoveNext()) 
            {
                TreeNode tn = (TreeNode) ie.Current;
                sr.WriteLine("<" + tn.Text + ">");
                parseNode(tn);
            }

            sr.Close();
        }

private static void parseNode(TreeNode tn) 
{
  IEnumerator ie = tn.Nodes.GetEnumerator();

  string parentnode = "";

  parentnode = tn.Text;

  while (ie.MoveNext()) 
  {
    TreeNode ctn = (TreeNode) ie.Current;

    if (ctn.GetNodeCount(true) == 0) 
    {
      sr.Write(ctn.Text);
    } 
    else 
    {
      sr.Write("<" + ctn.Text + ">");
    }
    if (ctn.GetNodeCount(true) > 0) 
    {
      parseNode(ctn);
    }
  }

  sr.Write("</" + parentnode + ">");
  sr.WriteLine("");

}
Abgelegt unter XML, TreeView.

2 Kommentare zum Snippet

AKR schrieb am 5/29/2006:
Also a) fehlt die Definition von parseNode, b) nutzt man zum Erzeugen eines Xml Dokumentes am besten einen XmlTextWriter und c) nutzt man am besten foreach( TreeNode node in tv.Nodes) statt Enumerator.
Jan Welker schrieb am 6/14/2006:
die Definition von parseNode habe ich hinzugefügt
 

Logge dich ein, um hier zu kommentieren!