C#实现通讯录“添加下级分组”功能,比如“我的同学”可以分为“小学同学”“初中同学”等等,数据以xml方式存储

C#实现通讯录“添加下级分组”功能,比如“我的同学”可以分为“小学同学”“初中同学”等等,数据以xml方式存储

问题描述:

C#设计一个通讯录,要求实现“添加下级分组”功能。类TreeXML实现了对List和AddressList的XML文件的主要读、写、修改和删除的功能。其中“List.xml”和“AddressList”XML文件用于记录分组信息和联系人信息。已经写出来“添加同级分组功能”: private void toolStripButton6_Click(object sender, EventArgs e)//添加同级分组
{
form2 form2 = new form2();
form2.ShowDialog(); //弹出添加修改分组窗体
if (form2.groupName != "")
{
TreeNode tn = new TreeNode();
tn.Text = form2.groupName;
treeView1.Nodes.Add(tn);
/*写入XML文件*/
if (treeView1.SelectedNode.Parent == null) //判断是否是父节点
{
TreeXML TreXml = new TreeXML();
TreXml.AddXmlSelectedNode(starpath + @"\List.xml", form2.groupName);
}
}
}

            这是TreeXML中的读写部分代码:public void AddXmlSelectedNode(string XMLFilePath, string NodeName)
    {
        xmldocument.Load(XMLFilePath);
        XmlNode root = xmldocument.SelectSingleNode("List");    //查找<List>
        XmlNodeList childlist = root.ChildNodes;
        XmlElement xe1 = xmldocument.CreateElement("组名");   //创建一个<组名>节点
        xe1.InnerText = NodeName;                       //设置节点的串联值
        root.AppendChild(xe1);                          //添加到<List>节点中
        xmldocument.Save(XMLFilePath);                  //将XML文档保存到指定的文件中
    }
    /*读取分组的XML文件并显示在TreeView控件上*/
    public void XMLToTree(string XMLFilePath, TreeView TheTreeView)
    {
        thetreeview = TheTreeView;
        xmldocument.Load(XMLFilePath);                      //读取XML文件
        XmlNode root = xmldocument.SelectSingleNode("List");    //选择匹配List的第1个节点
        foreach (XmlNode subXmlnod in root.ChildNodes)      //遍历此所有子节点
        {
            if (subXmlnod.Name == "组名")                 //子节点的限定名为“组名”
            {
                TreeNode trerotnod = new TreeNode();        //实例化一个树节点
                trerotnod.Text = subXmlnod.InnerText;       //将子节点串联值作为树节点名称
                thetreeview.Nodes.Add(trerotnod);           //添加此树节点
            }
        }
    }
            想要问一下“添加下级分组功能”怎么写啊?在TreeXML中要修改什么代码吗?

如果你要无限级分组,那么数据结构就是
id parentid text
否则只要给你的节点加上一个所属分类的属性就可以了。