如何在treeview中显示xml,并对其操作
1.使用treeview显示本地存放的xml文件。
2.通过对treeview的节点操作从而改变树状结构,在退出时保存到本地xml文件中.

解决方案 »

  1.   

    dataset加载xml通过dataset填充树修改时改treeview,相应的改datasetdataset写回xml
      

  2.   

    其实方法有很多,XmlDocument 支持对xml文件的读写。而xml本身就是一颗树。楼主可会递归?归一下不就有了?写进去更简单。首先获得当前树结点属于xmlDocument 中的哪个XmlNode。然后修改那个Node最后保存xmlDocument不就可以了
      

  3.   

    在treeview中显示一个xml是很简单的事件,
    private void Form1_Load(object sender, System.EventArgs e)
    {

    // //新建一个Xmldocument的实例
    // XmlDocument document = new XmlDocument();
    // //此实例载入一个Xml文件
    // document.Load("../../contacts.xml"); 
    // //调用一个函数Fill tree.
    // populateTreeContro(document.DocumentElement,treeView1.Nodes); 
    // }下面是这个可递归的函数。
    private void populateTreeControl( XmlNode document, TreeNodeCollection nodes)  
    {      //从document.ChildNodes这个集合中逐个遍历填充node.
    foreach (XmlNode node in document.ChildNodes)
    {        
    //  If the element has a value, display it;        
    //  otherwise display the first attribute         
    //  (if there is one) or the element name        
    //  (if there isn't)       
    string text = (node.Value != null ? node.Value :(node.Attributes != null&&node.Attributes.Count > 0) ? node.Attributes[0].Value : node.Name);   TreeNode new_child = new TreeNode(text);   

    nodes.Add(new_child);    

    populateTreeControl(node, new_child.Nodes); 
    }

    在这里我想问的是,怎么对treeview 中选定的 node,进行了修改,就能够也对xml也就进行了修改。我现在已经知道了,
    1.在formload 中加入
              this.treeView1 .ContextMenu=this.contextMenu1 ;
    此菜单实现对节点的操作的。
    例如:对删除的节点的操作是这样写的。
    private void menuItem1_Click(object sender, System.EventArgs e)
    {
    if ( treeView1.SelectedNode.Nodes.Count == 0 )
    //删除节点
    treeView1.SelectedNode.Remove ( ) ; else
    MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ; }
    请问这个删除操作里怎么写,也能让xml中也删除。