下面是我在一公司面试时的题目.想了好长时间也无从下手,哪位能帮忙解决一下
7. 使用XML作为数据库载体,自行设计XML结构。使用.Net三层架构设计思想。写出对如下数据的读,写,修改
说明:节点1、节点2、节点3、节点4为根节点。节点5为节点1的第一个子节点,节点6为节点5的第一个子节点,节点七为节点5的第二个子节点,以此类推。
要求:
 新增节点时可根据选中的节点增加其子节点,也可新增根节点.
 修改时可修改节点名称,节点所属的父节点。
 删除节点
注意:删除节点时,如该节点有子节点,则需要将该节点的所有子节点的父节点改为被删除节点的父节点(如删除节点5,则节点6的ID改为0101,节点7的ID改为0103)
修改节点的父节点时,情况与删除节点相同ID 名称
0001 节点1
0002 节点2
0003 节点3
0004 节点4
00010001 节点5
000100010001 节点6
000100010002 节点7
00010002 节点8
000100020001 节点9

解决方案 »

  1.   

    http://blog.163.com/ysli_195/blog/static/4205419420089733959975/这里有现成的代码
      

  2.   

    还有这中面试题?考对xml操作有多熟练?
      

  3.   

    比如我加载xml文档,exam.xml
    XmlDocument document = new XmlDocument();
    docuemnt.Load("exam.xml");
    XmlElement root = document.DocumentElement;
    //这边我用X来代替被选中的结点
    //增加结点
    X.AppendChild(document.CreateElement("XChild"));//修改结点
    X.Name = "自己设置了哇"
    X.ParentNode.Name = "自己设置了哇"//删除结点
    if(X.ParentNode!=null)  //判断X不能为根结点
    {
        if(X.HasChildNodes)
        {
           XmlNodeList nodelist = X.ChildNodes; //选择当前节点的所有子节点
            for(int i=0;i<nodelist.count;i++)
           {
              X.ParentNode.AppendChild(nodelist[i]);
              X.RemoveChild(nodelist[i]);
           }
           X.ParentNode.RemoveChild(X);
        }
        else
        {
           X.ParentNode.RemoveChild(X);    
        }
    }