对XML文件操作
XML具体操作实现(增加,删除,更新,导出)
XML格式:
 <?xml version="1.0" encoding="GB2312"?>
<?xml version="1.0" encoding="GB2312"?>
 <app:Users xmlns:app="uri:appraisal">
<app:Users xmlns:app="uri:appraisal">
 <User id="000">
  <User id="000">
 <Name>Jeffrey</Name>
    <Name>Jeffrey</Name>
 <Sex>男</Sex>
    <Sex>男</Sex>
 <UserName>Jeffrey</UserName>
    <UserName>Jeffrey</UserName>
 <UserID>1</UserID>
    <UserID>1</UserID>
 <Department>Jeffrey</Department>
    <Department>Jeffrey</Department>
 <Working>是</Working>
    <Working>是</Working>
 <Power>0</Power>
    <Power>0</Power>
 <Position>1</Position>
    <Position>1</Position>
 <Post>
    <Post>
 </Post>
    </Post>
 <Tel>
    <Tel>
 </Tel>
    </Tel>
 </User>
  </User>
 <User id="001">
  <User id="001">
 <Name>Tom</Name>
    <Name>Tom</Name>
 <Sex>男</Sex>
    <Sex>男</Sex>
 <UserName>tom</UserName>
    <UserName>tom</UserName>
 <UserID>111</UserID>
    <UserID>111</UserID>
 <Department>host</Department>
    <Department>host</Department>
 <Working>是</Working>
    <Working>是</Working>
 <Power>2</Power>
    <Power>2</Power>
 <Position>工程师</Position>
    <Position>工程师</Position>
 <Post>
    <Post>
 </Post>
    </Post>
 <Tel>111</Tel>
    <Tel>111</Tel>
 </User>
  </User>
 <User id="002">
  <User id="002">
 <Name>Jef</Name>
    <Name>Jef</Name>
 <Sex>男</Sex>
    <Sex>男</Sex>
 <UserName>jef</UserName>
    <UserName>jef</UserName>
 <UserID>1</UserID>
    <UserID>1</UserID>
 <Department>jef </Department>
    <Department>jef </Department>
 <Working>是</Working>
    <Working>是</Working>
 <Power>2</Power>
    <Power>2</Power>
 <Position>工程师</Position>
    <Position>工程师</Position>
 <Post>
    <Post>
 </Post>
    </Post>
 <Tel>121</Tel>
    <Tel>121</Tel>
 </User>
  </User>
 <User id="1">
  <User id="1">
 <Name>1</Name>
    <Name>1</Name>
 <Sex>1</Sex>
    <Sex>1</Sex>
 <UserName>1</UserName>
    <UserName>1</UserName>
 <UseID>1</UseID>
    <UseID>1</UseID>
 <Department>1</Department>
    <Department>1</Department>
 <Working>1</Working>
    <Working>1</Working>
 <Power>1</Power>
    <Power>1</Power>
 <Position>1</Position>
    <Position>1</Position>
 <Post>1</Post>
    <Post>1</Post>
 <Tel>1</Tel>
    <Tel>1</Tel>
 </User>
  </User>
 </app:Users>
</app:Users>
窗体加载的时候需要XML里面的数据
 private void PopList(ListBox lbUsers)
private void PopList(ListBox lbUsers)
 {
        {
 lbUsers.Items.Clear();
            lbUsers.Items.Clear();
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 //查找每个人员的根接点
            //查找每个人员的根接点
 XmlNodeList xList=xdoc.SelectNodes("//User");
            XmlNodeList xList=xdoc.SelectNodes("//User");


 foreach(XmlNode xNode in xList)
            foreach(XmlNode xNode in xList)
 {
            {
 lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
                lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
 }
            }
 }
        }
ListBox里面选择转移的时候
 private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 DisplayNotes(name);
            DisplayNotes(name);
 }
        }


 /*实现当选择人改变的时候 把人名传入方法*/
/*实现当选择人改变的时候 把人名传入方法*/
 private void DisplayNotes(string name)
    private void DisplayNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
            XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
 TextClear();
            TextClear();
 foreach(XmlNode node in NList)
            foreach(XmlNode node in NList)
 {
            {
 XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node);
 try
                try
 {
                {
 while(NReader.Read())
                    while(NReader.Read())
 {
                    {
 if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element)
 {
                        {
 if(NReader.HasAttributes)
                            if(NReader.HasAttributes)
 {
                            {
 while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute())
 {
                                {
 if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal")
 {
                                    {
 txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value;
 }
                                    }
 }
                                }
 }
                            }
 }
                        }
 if(NReader.Name=="Name")
                        if(NReader.Name=="Name")
 {
                        {
 txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex")
 {
                        {
 txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName")
 {
                        {
 txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID")
 {
                        {
 txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department")
 {
                        {
 txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working")
 {
                        {
 txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power")
 {
                        {
 txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position")
 {
                        {
 txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post")
 {
                        {
 txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel")
 {
                        {
 txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();

 }
                        }
 }
                    }
 }
                }
 catch(Exception err)
                catch(Exception err)
 {
                {
 string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString();
 MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg);
 }
                }
 finally
                finally
 {
                {
 if(NReader!=null)
                    if(NReader!=null)
 {
                    {
 NReader.Close();
                        NReader.Close();
 }
                    }
 }
                }
 }
            }
 
        
 }
        }
 
新增用户到XML
 private void btnAdd_Click(object sender, System.EventArgs e)
private void btnAdd_Click(object sender, System.EventArgs e)
 {
        {
 const string strFileName="User.xml";
            const string strFileName="User.xml";
 XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
            XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
 TWriter.WriteStartDocument();
            TWriter.WriteStartDocument();
 TWriter.WriteStartElement("app","Users","uri:appraisal");
            TWriter.WriteStartElement("app","Users","uri:appraisal");
 TWriter.WriteStartElement("User");
            TWriter.WriteStartElement("User");
 TWriter.WriteAttributeString("id",txtID.Text);
            TWriter.WriteAttributeString("id",txtID.Text);
 TWriter.WriteElementString("Name",txtName.Text);
            TWriter.WriteElementString("Name",txtName.Text);
 TWriter.WriteElementString("Sex",txtSex.Text);
            TWriter.WriteElementString("Sex",txtSex.Text);
 TWriter.WriteElementString("UserName",txtUserName.Text);
            TWriter.WriteElementString("UserName",txtUserName.Text);
 TWriter.WriteElementString("UseID",txtUserID.Text);
            TWriter.WriteElementString("UseID",txtUserID.Text);
 TWriter.WriteElementString("Department",txtDepartment.Text);
            TWriter.WriteElementString("Department",txtDepartment.Text);
 TWriter.WriteElementString("Working",txtWorking.Text);
            TWriter.WriteElementString("Working",txtWorking.Text);
 TWriter.WriteElementString("Power",txtPower.Text);
            TWriter.WriteElementString("Power",txtPower.Text);
 TWriter.WriteElementString("Position",txtPosition.Text);
            TWriter.WriteElementString("Position",txtPosition.Text);
 TWriter.WriteElementString("Post",txtPost.Text);
            TWriter.WriteElementString("Post",txtPost.Text);
 TWriter.WriteElementString("Tel",txtTel.Text);
            TWriter.WriteElementString("Tel",txtTel.Text);

 TWriter.WriteElementString("Tel1", txtTel.Text);
            TWriter.WriteElementString("Tel1", txtTel.Text);

 TWriter.WriteEndElement();
            TWriter.WriteEndElement();
 TWriter.WriteEndElement();
            TWriter.WriteEndElement();
 TWriter.WriteEndDocument();
            TWriter.WriteEndDocument();

 TWriter.Flush();
            TWriter.Flush();
 TWriter.Close();
            TWriter.Close();

 ImportUser("User.xml");
            ImportUser("User.xml");
 }
        }


 private void ImportUser(string path)
private void ImportUser(string path)
 {
        {    
 string FilePath="Users.xml";
            string FilePath="Users.xml";

 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load(FilePath);
            xdoc.Load(FilePath);

 XmlDocument xdocImp=new XmlDocument();
            XmlDocument xdocImp=new XmlDocument();
 xdocImp.Load(path);
            xdocImp.Load(path);

 XmlNodeList pNodes=xdocImp.SelectNodes("//User");
            XmlNodeList pNodes=xdocImp.SelectNodes("//User");

 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 foreach(XmlNode pNode in pNodes)
            foreach(XmlNode pNode in pNodes)
 {
            {
 XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
                XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
 if(pNodeImp==null)
                if(pNodeImp==null)  
 {
                {
 XmlNode importedNode=xdoc.ImportNode(pNode,true);
                    XmlNode importedNode=xdoc.ImportNode(pNode,true);
 xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
                    xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
 }
                }
 }
            }
 xdoc.Save(FilePath);
            xdoc.Save(FilePath);
 PopList(lbUsers);
            PopList(lbUsers);
 }
        }
 
删除用户
 private void btnDelete_Click(object sender, System.EventArgs e)
private void btnDelete_Click(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 TextClear();
            TextClear();
 DeleteNotes(name);
            DeleteNotes(name);
 }
        }

 private void DeleteNotes(string name)
        private void DeleteNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");

 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
 XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
            XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
 rootnode.RemoveChild(node);
            rootnode.RemoveChild(node);
 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");
 PopList(lbUsers);
            PopList(lbUsers);
 }
更新用户
        }
更新用户
 private void btnUpdate_Click(object sender, System.EventArgs e)
private void btnUpdate_Click(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 UpdateNotes(name);
            UpdateNotes(name);
 }
        }

 private void UpdateNotes(string name)
        private void UpdateNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 
            
 //创建一个文档片断来存储要替换的节点
            //创建一个文档片断来存储要替换的节点
 XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
            XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
 //新节点的根节点
            //新节点的根节点
 XmlElement newElement=xdoc.CreateElement("User");
            XmlElement newElement=xdoc.CreateElement("User");
 XmlAttribute newID=xdoc.CreateAttribute("id");
            XmlAttribute newID=xdoc.CreateAttribute("id");
 newID.Value=txtID.Text;
            newID.Value=txtID.Text;
 newElement.Attributes.SetNamedItem(newID);
            newElement.Attributes.SetNamedItem(newID);

 XmlElement newName=xdoc.CreateElement("Name");
            XmlElement newName=xdoc.CreateElement("Name");
 newName.InnerText=txtName.Text;
            newName.InnerText=txtName.Text;
 newElement.AppendChild(newName);
            newElement.AppendChild(newName);

 XmlElement newSex=xdoc.CreateElement("Sex");
            XmlElement newSex=xdoc.CreateElement("Sex");
 newSex.InnerText=txtSex.Text;
            newSex.InnerText=txtSex.Text;
 newElement.AppendChild(newSex);
            newElement.AppendChild(newSex);

 XmlElement newUserName=xdoc.CreateElement("UserName");
            XmlElement newUserName=xdoc.CreateElement("UserName");
 newUserName.InnerText=txtUserName.Text;
            newUserName.InnerText=txtUserName.Text;
 newElement.AppendChild(newUserName);
            newElement.AppendChild(newUserName);

 XmlElement newUserID=xdoc.CreateElement("UserID");
            XmlElement newUserID=xdoc.CreateElement("UserID");
 newUserID.InnerText=txtUserID.Text;
            newUserID.InnerText=txtUserID.Text;
 newElement.AppendChild(newUserID);
            newElement.AppendChild(newUserID);

 XmlElement newWorking=xdoc.CreateElement("Working");
            XmlElement newWorking=xdoc.CreateElement("Working");
 newWorking.InnerText=txtWorking.Text;
            newWorking.InnerText=txtWorking.Text;
 newElement.AppendChild(newWorking);
            newElement.AppendChild(newWorking);

 XmlElement newDepartment=xdoc.CreateElement("Department");
            XmlElement newDepartment=xdoc.CreateElement("Department");
 newDepartment.InnerText=txtDepartment.Text;
            newDepartment.InnerText=txtDepartment.Text;
 newElement.AppendChild(newDepartment);
            newElement.AppendChild(newDepartment);

 XmlElement newPosition=xdoc.CreateElement("Position");
            XmlElement newPosition=xdoc.CreateElement("Position");
 newPosition.InnerText=txtPosition.Text;
            newPosition.InnerText=txtPosition.Text;
 newElement.AppendChild(newPosition);
            newElement.AppendChild(newPosition);

 XmlElement newPost=xdoc.CreateElement("Post");
            XmlElement newPost=xdoc.CreateElement("Post");
 newPost.InnerText=txtPost.Text;
            newPost.InnerText=txtPost.Text;
 newElement.AppendChild(newPost);
            newElement.AppendChild(newPost);

 XmlElement newPower=xdoc.CreateElement("Power");
            XmlElement newPower=xdoc.CreateElement("Power");
 newPower.InnerText=txtPower.Text;
            newPower.InnerText=txtPower.Text;
 newElement.AppendChild(newPower);
            newElement.AppendChild(newPower);

 XmlElement newTel=xdoc.CreateElement("Tel");
            XmlElement newTel=xdoc.CreateElement("Tel");
 newTel.InnerText=txtTel.Text;
            newTel.InnerText=txtTel.Text;
 newTel.AppendChild(newTel);
            newTel.AppendChild(newTel);



 //XmlElement newTel1 = xdoc.CreateElement("Tel1");
            //XmlElement newTel1 = xdoc.CreateElement("Tel1");
 //newTel1.InnerText = txtTel.Text;
            //newTel1.InnerText = txtTel.Text;
 //newTel1.AppendChild(newTel);
            //newTel1.AppendChild(newTel);
 
            


 //把新创建的节点加入文档片断
            //把新创建的节点加入文档片断
 xdocFrag.AppendChild(newElement);
            xdocFrag.AppendChild(newElement);
 
            
 //确定要替换的节点作替换
            //确定要替换的节点作替换
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
 XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
            XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
 xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
            xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);

 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");

 PopList(lbUsers);
            PopList(lbUsers);

 
        
 }
导出用户到XML
        }
导出用户到XML
 private void btnExport_Click(object sender, System.EventArgs e)
private void btnExport_Click(object sender, System.EventArgs e)
 {
        {
 if(txtExport.Text.Trim().Length>0)
            if(txtExport.Text.Trim().Length>0)
 ExportUsers(txtExport.Text);
                ExportUsers(txtExport.Text);
 MessageBox.Show("导出成功!");
            MessageBox.Show("导出成功!");
 }
        }

 private void ExportUsers(string path)
        private void ExportUsers(string path)
 {
        {
 const string OrigPath="Users.xml";
            const string OrigPath="Users.xml";
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load(OrigPath);
            xdoc.Load(OrigPath);
 xdoc.Save(path);
            xdoc.Save(path);
 
        
 }
按照用户名进行查询
        }
按照用户名进行查询
 private void btnSearch_Click(object sender, System.EventArgs e)
private void btnSearch_Click(object sender, System.EventArgs e)
 {
        {
 FindContact(txtSearch.Text);
            FindContact(txtSearch.Text);
 }
        }
 /*符合名称的人 进行查询*/
/*符合名称的人 进行查询*/
 private void FindContact(string query)
        private void FindContact(string query)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
            XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
 foreach(XmlNode node in xList)
            foreach(XmlNode node in xList)
 {
            {
 XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node);
 try
                try
 {
                {
 while(NReader.Read())
                    while(NReader.Read())
 {
                    {
 if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element)
 {
                        {
 if(NReader.HasAttributes)
                            if(NReader.HasAttributes)
 {
                            {
 while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute())
 {
                                {
 if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal")
 {
                                    {
 txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value;
 }
                                    }
 }
                                }
 }
                            }
 }
                        }
 if(NReader.Name=="Name")
                        if(NReader.Name=="Name")
 {
                        {
 txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex")
 {
                        {
 txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName")
 {
                        {
 txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID")
 {
                        {
 txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department")
 {
                        {
 txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working")
 {
                        {
 txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power")
 {
                        {
 txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position")
 {
                        {
 txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post")
 {
                        {
 txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel")
 {
                        {
 txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();
 //
                            //
 }
                        }
 }
                    }
 }
                }
 catch(Exception err)
                catch(Exception err)
 {
                {
 string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString();
 MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg);
 }
                }
 finally
                finally
 {
                {
 if(NReader!=null)
                    if(NReader!=null)
 {
                    {
 NReader.Close();
                        NReader.Close();
 }
                    }
 }
                }
 }
            }
 }
        }
 
全部代码如下:
 using System;
using System;
 using System.Drawing;
using System.Drawing;
 using System.Collections;
using System.Collections;
 using System.ComponentModel;
using System.ComponentModel;
 using System.Windows.Forms;
using System.Windows.Forms;
 using System.Data;
using System.Data;
 using System.Xml;
using System.Xml;
 using System.Xml.Xsl;
using System.Xml.Xsl;
 using System.Xml.XPath;
using System.Xml.XPath;
 using System.Text;
using System.Text;

 namespace UserManagement
namespace UserManagement
 {
{
 /// <summary>
    /// <summary>
 /// Form1 的摘要说明。
    /// Form1 的摘要说明。
 /// </summary>
    /// </summary>
 public class frmUser : System.Windows.Forms.Form
    public class frmUser : System.Windows.Forms.Form
 {
    {
 private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label1;
 private System.Windows.Forms.ListBox lbUsers;
        private System.Windows.Forms.ListBox lbUsers;
 private System.Windows.Forms.TextBox txtSex;
        private System.Windows.Forms.TextBox txtSex;
 private System.Windows.Forms.TextBox txtUserID;
        private System.Windows.Forms.TextBox txtUserID;
 private System.Windows.Forms.TextBox txtUserName;
        private System.Windows.Forms.TextBox txtUserName;
 private System.Windows.Forms.TextBox txtID;
        private System.Windows.Forms.TextBox txtID;
 private System.Windows.Forms.TextBox txtName;
        private System.Windows.Forms.TextBox txtName;
 private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label2;
 private System.Windows.Forms.Label lbID;
        private System.Windows.Forms.Label lbID;
 private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label3;
 private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label4;
 private System.Windows.Forms.Label label5;
        private System.Windows.Forms.Label label5;
 private System.Windows.Forms.Label label6;
        private System.Windows.Forms.Label label6;
 private System.Windows.Forms.Label label7;
        private System.Windows.Forms.Label label7;
 private System.Windows.Forms.Label label8;
        private System.Windows.Forms.Label label8;
 private System.Windows.Forms.Label lbUserName;
        private System.Windows.Forms.Label lbUserName;
 private System.Windows.Forms.TextBox txtPower;
        private System.Windows.Forms.TextBox txtPower;
 private System.Windows.Forms.TextBox txtPosition;
        private System.Windows.Forms.TextBox txtPosition;
 private System.Windows.Forms.TextBox txtTel;
        private System.Windows.Forms.TextBox txtTel;
 private System.Windows.Forms.TextBox txtWorking;
        private System.Windows.Forms.TextBox txtWorking;
 private System.Windows.Forms.TextBox txtPost;
        private System.Windows.Forms.TextBox txtPost;
 private System.Windows.Forms.TextBox txtDepartment;
        private System.Windows.Forms.TextBox txtDepartment;
 private System.Windows.Forms.Label label9;
        private System.Windows.Forms.Label label9;
 private System.Windows.Forms.Label label10;
        private System.Windows.Forms.Label label10;
 private System.Windows.Forms.Button btnExport;
        private System.Windows.Forms.Button btnExport;
 private System.Windows.Forms.TextBox txtExport;
        private System.Windows.Forms.TextBox txtExport;
 private System.Windows.Forms.Button btnAdd;
        private System.Windows.Forms.Button btnAdd;
 private System.Windows.Forms.Button btnUpdate;
        private System.Windows.Forms.Button btnUpdate;
 private System.Windows.Forms.Button btnDelete;
        private System.Windows.Forms.Button btnDelete;
 private System.Windows.Forms.Button btnSearch;
        private System.Windows.Forms.Button btnSearch;
 private System.Windows.Forms.TextBox txtSearch;
        private System.Windows.Forms.TextBox txtSearch;
 private System.Windows.Forms.Button btnClear;
        private System.Windows.Forms.Button btnClear;
 private System.Windows.Forms.MainMenu mnuMain;
        private System.Windows.Forms.MainMenu mnuMain;
 private System.Windows.Forms.MenuItem menuItem1;
        private System.Windows.Forms.MenuItem menuItem1;
 private System.Windows.Forms.MenuItem menuExit;
        private System.Windows.Forms.MenuItem menuExit;
 /// <summary>
        /// <summary>
 /// 必需的设计器变量。
        /// 必需的设计器变量。
 /// </summary>
        /// </summary>
 private System.ComponentModel.Container components = null;
        private System.ComponentModel.Container components = null;

 public frmUser()
        public frmUser()
 {
        {
 //
            //
 // Windows 窗体设计器支持所必需的
            // Windows 窗体设计器支持所必需的
 //
            //
 InitializeComponent();
            InitializeComponent();

 //
            //
 // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
 //
            //
 }
        }

 /// <summary>
        /// <summary>
 /// 清理所有正在使用的资源。
        /// 清理所有正在使用的资源。
 /// </summary>
        /// </summary>
 protected override void Dispose( bool disposing )
        protected override void Dispose( bool disposing )
 {
        {
 if( disposing )
            if( disposing )
 {
            {
 if (components != null)
                if (components != null) 
 {
                {
 components.Dispose();
                    components.Dispose();
 }
                }
 }
            }
 base.Dispose( disposing );
            base.Dispose( disposing );
 }
        }

 Windows 窗体设计器生成的代码
        Windows 窗体设计器生成的代码

 /// <summary>
        /// <summary>
 /// 应用程序的主入口点。
        /// 应用程序的主入口点。
 /// </summary>
        /// </summary>
 [STAThread]
        [STAThread]
 static void Main()
        static void Main() 
 {
        {
 Application.Run(new frmUser());
            Application.Run(new frmUser());
 }
        }

 private void frmUser_Load(object sender, System.EventArgs e)
        private void frmUser_Load(object sender, System.EventArgs e)
 {
        {
 PopList(lbUsers);
            PopList(lbUsers);
 }
        }

 private void PopList(ListBox lbUsers)
        private void PopList(ListBox lbUsers)
 {
        {
 lbUsers.Items.Clear();
            lbUsers.Items.Clear();
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 //查找每个人员的根接点
            //查找每个人员的根接点
 XmlNodeList xList=xdoc.SelectNodes("//User");
            XmlNodeList xList=xdoc.SelectNodes("//User");


 foreach(XmlNode xNode in xList)
            foreach(XmlNode xNode in xList)
 {
            {
 lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
                lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
 }
            }
 }
        }

 private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
        private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 DisplayNotes(name);
            DisplayNotes(name);
 }
        }

 private void TextClear()
        private void TextClear()
 {
        {
 txtName.Text="";
            txtName.Text="";
 txtID.Text="";
            txtID.Text="";
 txtSex.Text="";
            txtSex.Text="";
 txtUserName.Text="";
            txtUserName.Text="";
 txtUserID.Text="";
            txtUserID.Text="";
 txtWorking.Text="";
            txtWorking.Text="";
 txtDepartment.Text="";
            txtDepartment.Text="";
 txtPosition.Text="";
            txtPosition.Text="";
 txtPost.Text="";
            txtPost.Text="";
 txtPower.Text="";
            txtPower.Text="";
 txtTel.Text="";
            txtTel.Text="";
 }
        }

 private void DisplayNotes(string name)
        private void DisplayNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
            XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
 TextClear();
            TextClear();
 foreach(XmlNode node in NList)
            foreach(XmlNode node in NList)
 {
            {
 XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node);
 try
                try
 {
                {
 while(NReader.Read())
                    while(NReader.Read())
 {
                    {
 if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element)
 {
                        {
 if(NReader.HasAttributes)
                            if(NReader.HasAttributes)
 {
                            {
 while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute())
 {
                                {
 if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal")
 {
                                    {
 txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value;
 }
                                    }
 }
                                }
 }
                            }
 }
                        }
 if(NReader.Name=="Name")
                        if(NReader.Name=="Name")
 {
                        {
 txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex")
 {
                        {
 txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName")
 {
                        {
 txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID")
 {
                        {
 txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department")
 {
                        {
 txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working")
 {
                        {
 txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power")
 {
                        {
 txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position")
 {
                        {
 txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post")
 {
                        {
 txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel")
 {
                        {
 txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();

 }
                        }
 }
                    }
 }
                }
 catch(Exception err)
                catch(Exception err)
 {
                {
 string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString();
 MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg);
 }
                }
 finally
                finally
 {
                {
 if(NReader!=null)
                    if(NReader!=null)
 {
                    {
 NReader.Close();
                        NReader.Close();
 }
                    }
 }
                }
 }
            }
 
        
 }
        }

 private void btnExport_Click(object sender, System.EventArgs e)
        private void btnExport_Click(object sender, System.EventArgs e)
 {
        {
 if(txtExport.Text.Trim().Length>0)
            if(txtExport.Text.Trim().Length>0)
 ExportUsers(txtExport.Text);
                ExportUsers(txtExport.Text);
 MessageBox.Show("导出成功!");
            MessageBox.Show("导出成功!");
 }
        }

 private void ExportUsers(string path)
        private void ExportUsers(string path)
 {
        {
 const string OrigPath="Users.xml";
            const string OrigPath="Users.xml";
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load(OrigPath);
            xdoc.Load(OrigPath);
 xdoc.Save(path);
            xdoc.Save(path);
 
        
 }
        }

 private void btnAdd_Click(object sender, System.EventArgs e)
        private void btnAdd_Click(object sender, System.EventArgs e)
 {
        {
 const string strFileName="User.xml";
            const string strFileName="User.xml";
 XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
            XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
 TWriter.WriteStartDocument();
            TWriter.WriteStartDocument();
 TWriter.WriteStartElement("app","Users","uri:appraisal");
            TWriter.WriteStartElement("app","Users","uri:appraisal");
 TWriter.WriteStartElement("User");
            TWriter.WriteStartElement("User");
 TWriter.WriteAttributeString("id",txtID.Text);
            TWriter.WriteAttributeString("id",txtID.Text);
 TWriter.WriteElementString("Name",txtName.Text);
            TWriter.WriteElementString("Name",txtName.Text);
 TWriter.WriteElementString("Sex",txtSex.Text);
            TWriter.WriteElementString("Sex",txtSex.Text);
 TWriter.WriteElementString("UserName",txtUserName.Text);
            TWriter.WriteElementString("UserName",txtUserName.Text);
 TWriter.WriteElementString("UseID",txtUserID.Text);
            TWriter.WriteElementString("UseID",txtUserID.Text);
 TWriter.WriteElementString("Department",txtDepartment.Text);
            TWriter.WriteElementString("Department",txtDepartment.Text);
 TWriter.WriteElementString("Working",txtWorking.Text);
            TWriter.WriteElementString("Working",txtWorking.Text);
 TWriter.WriteElementString("Power",txtPower.Text);
            TWriter.WriteElementString("Power",txtPower.Text);
 TWriter.WriteElementString("Position",txtPosition.Text);
            TWriter.WriteElementString("Position",txtPosition.Text);
 TWriter.WriteElementString("Post",txtPost.Text);
            TWriter.WriteElementString("Post",txtPost.Text);
 TWriter.WriteElementString("Tel",txtTel.Text);
            TWriter.WriteElementString("Tel",txtTel.Text);

 TWriter.WriteElementString("Tel1", txtTel.Text);
            TWriter.WriteElementString("Tel1", txtTel.Text);

 TWriter.WriteEndElement();
            TWriter.WriteEndElement();
 TWriter.WriteEndElement();
            TWriter.WriteEndElement();
 TWriter.WriteEndDocument();
            TWriter.WriteEndDocument();

 TWriter.Flush();
            TWriter.Flush();
 TWriter.Close();
            TWriter.Close();

 ImportUser("User.xml");
            ImportUser("User.xml");
 }
        }
 
        
 private void ImportUser(string path)
        private void ImportUser(string path)
 {
        {    
 string FilePath="Users.xml";
            string FilePath="Users.xml";

 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load(FilePath);
            xdoc.Load(FilePath);

 XmlDocument xdocImp=new XmlDocument();
            XmlDocument xdocImp=new XmlDocument();
 xdocImp.Load(path);
            xdocImp.Load(path);

 XmlNodeList pNodes=xdocImp.SelectNodes("//User");
            XmlNodeList pNodes=xdocImp.SelectNodes("//User");

 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 foreach(XmlNode pNode in pNodes)
            foreach(XmlNode pNode in pNodes)
 {
            {
 XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
                XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
 if(pNodeImp==null)
                if(pNodeImp==null)  
 {
                {
 XmlNode importedNode=xdoc.ImportNode(pNode,true);
                    XmlNode importedNode=xdoc.ImportNode(pNode,true);
 xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
                    xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
 }
                }
 }
            }
 xdoc.Save(FilePath);
            xdoc.Save(FilePath);
 PopList(lbUsers);
            PopList(lbUsers);
 }
        }

 private void btnUpdate_Click(object sender, System.EventArgs e)
        private void btnUpdate_Click(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 UpdateNotes(name);
            UpdateNotes(name);
 }
        }

 private void UpdateNotes(string name)
        private void UpdateNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 
            
 //创建一个文档片断来存储要替换的节点
            //创建一个文档片断来存储要替换的节点
 XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
            XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
 //新节点的根节点
            //新节点的根节点
 XmlElement newElement=xdoc.CreateElement("User");
            XmlElement newElement=xdoc.CreateElement("User");
 XmlAttribute newID=xdoc.CreateAttribute("id");
            XmlAttribute newID=xdoc.CreateAttribute("id");
 newID.Value=txtID.Text;
            newID.Value=txtID.Text;
 newElement.Attributes.SetNamedItem(newID);
            newElement.Attributes.SetNamedItem(newID);

 XmlElement newName=xdoc.CreateElement("Name");
            XmlElement newName=xdoc.CreateElement("Name");
 newName.InnerText=txtName.Text;
            newName.InnerText=txtName.Text;
 newElement.AppendChild(newName);
            newElement.AppendChild(newName);

 XmlElement newSex=xdoc.CreateElement("Sex");
            XmlElement newSex=xdoc.CreateElement("Sex");
 newSex.InnerText=txtSex.Text;
            newSex.InnerText=txtSex.Text;
 newElement.AppendChild(newSex);
            newElement.AppendChild(newSex);

 XmlElement newUserName=xdoc.CreateElement("UserName");
            XmlElement newUserName=xdoc.CreateElement("UserName");
 newUserName.InnerText=txtUserName.Text;
            newUserName.InnerText=txtUserName.Text;
 newElement.AppendChild(newUserName);
            newElement.AppendChild(newUserName);

 XmlElement newUserID=xdoc.CreateElement("UserID");
            XmlElement newUserID=xdoc.CreateElement("UserID");
 newUserID.InnerText=txtUserID.Text;
            newUserID.InnerText=txtUserID.Text;
 newElement.AppendChild(newUserID);
            newElement.AppendChild(newUserID);

 XmlElement newWorking=xdoc.CreateElement("Working");
            XmlElement newWorking=xdoc.CreateElement("Working");
 newWorking.InnerText=txtWorking.Text;
            newWorking.InnerText=txtWorking.Text;
 newElement.AppendChild(newWorking);
            newElement.AppendChild(newWorking);

 XmlElement newDepartment=xdoc.CreateElement("Department");
            XmlElement newDepartment=xdoc.CreateElement("Department");
 newDepartment.InnerText=txtDepartment.Text;
            newDepartment.InnerText=txtDepartment.Text;
 newElement.AppendChild(newDepartment);
            newElement.AppendChild(newDepartment);

 XmlElement newPosition=xdoc.CreateElement("Position");
            XmlElement newPosition=xdoc.CreateElement("Position");
 newPosition.InnerText=txtPosition.Text;
            newPosition.InnerText=txtPosition.Text;
 newElement.AppendChild(newPosition);
            newElement.AppendChild(newPosition);

 XmlElement newPost=xdoc.CreateElement("Post");
            XmlElement newPost=xdoc.CreateElement("Post");
 newPost.InnerText=txtPost.Text;
            newPost.InnerText=txtPost.Text;
 newElement.AppendChild(newPost);
            newElement.AppendChild(newPost);

 XmlElement newPower=xdoc.CreateElement("Power");
            XmlElement newPower=xdoc.CreateElement("Power");
 newPower.InnerText=txtPower.Text;
            newPower.InnerText=txtPower.Text;
 newElement.AppendChild(newPower);
            newElement.AppendChild(newPower);

 XmlElement newTel=xdoc.CreateElement("Tel");
            XmlElement newTel=xdoc.CreateElement("Tel");
 newTel.InnerText=txtTel.Text;
            newTel.InnerText=txtTel.Text;
 newTel.AppendChild(newTel);
            newTel.AppendChild(newTel);



 //XmlElement newTel1 = xdoc.CreateElement("Tel1");
            //XmlElement newTel1 = xdoc.CreateElement("Tel1");
 //newTel1.InnerText = txtTel.Text;
            //newTel1.InnerText = txtTel.Text;
 //newTel1.AppendChild(newTel);
            //newTel1.AppendChild(newTel);
 
            


 //把新创建的节点加入文档片断
            //把新创建的节点加入文档片断
 xdocFrag.AppendChild(newElement);
            xdocFrag.AppendChild(newElement);
 
            
 //确定要替换的节点作替换
            //确定要替换的节点作替换
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
 XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
            XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
 xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
            xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);

 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");

 PopList(lbUsers);
            PopList(lbUsers);

 
        
 }
        }

 private void btnDelete_Click(object sender, System.EventArgs e)
        private void btnDelete_Click(object sender, System.EventArgs e)
 {
        {
 string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
 string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString();
 TextClear();
            TextClear();
 DeleteNotes(name);
            DeleteNotes(name);
 }
        }

 private void DeleteNotes(string name)
        private void DeleteNotes(string name)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");

 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable();
 XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
 nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");

 XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
 XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
            XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
 rootnode.RemoveChild(node);
            rootnode.RemoveChild(node);
 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");
 PopList(lbUsers);
            PopList(lbUsers);
 }
        }

 private void btnSearch_Click(object sender, System.EventArgs e)
        private void btnSearch_Click(object sender, System.EventArgs e)
 {
        {
 FindContact(txtSearch.Text);
            FindContact(txtSearch.Text);
 }
        }

 private void FindContact(string query)
        private void FindContact(string query)
 {
        {
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument();
 xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
            XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
 foreach(XmlNode node in xList)
            foreach(XmlNode node in xList)
 {
            {
 XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node);
 try
                try
 {
                {
 while(NReader.Read())
                    while(NReader.Read())
 {
                    {
 if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element)
 {
                        {
 if(NReader.HasAttributes)
                            if(NReader.HasAttributes)
 {
                            {
 while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute())
 {
                                {
 if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal")
 {
                                    {
 txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value;
 }
                                    }
 }
                                }
 }
                            }
 }
                        }
 if(NReader.Name=="Name")
                        if(NReader.Name=="Name")
 {
                        {
 txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex")
 {
                        {
 txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName")
 {
                        {
 txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID")
 {
                        {
 txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department")
 {
                        {
 txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working")
 {
                        {
 txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power")
 {
                        {
 txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position")
 {
                        {
 txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post")
 {
                        {
 txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString();
 }
                        }
 else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel")
 {
                        {
 txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();
 //
                            //
 }
                        }
 }
                    }
 }
                }
 catch(Exception err)
                catch(Exception err)
 {
                {
 string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString();
 MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg);
 }
                }
 finally
                finally
 {
                {
 if(NReader!=null)
                    if(NReader!=null)
 {
                    {
 NReader.Close();
                        NReader.Close();
 }
                    }
 }
                }
 }
            }
 }
        }

 private void btnClear_Click(object sender, System.EventArgs e)
        private void btnClear_Click(object sender, System.EventArgs e)
 {
        {
 TextClear();
            TextClear();
 }
        }

 private void menuExit_Click(object sender, System.EventArgs e)
        private void menuExit_Click(object sender, System.EventArgs e)
 {
        {
 this.Close();
            this.Close();
 }
        }

 
    
 }
    }
 }
}
 
XML格式:
 <?xml version="1.0" encoding="GB2312"?>
<?xml version="1.0" encoding="GB2312"?> <app:Users xmlns:app="uri:appraisal">
<app:Users xmlns:app="uri:appraisal"> <User id="000">
  <User id="000"> <Name>Jeffrey</Name>
    <Name>Jeffrey</Name> <Sex>男</Sex>
    <Sex>男</Sex> <UserName>Jeffrey</UserName>
    <UserName>Jeffrey</UserName> <UserID>1</UserID>
    <UserID>1</UserID> <Department>Jeffrey</Department>
    <Department>Jeffrey</Department> <Working>是</Working>
    <Working>是</Working> <Power>0</Power>
    <Power>0</Power> <Position>1</Position>
    <Position>1</Position> <Post>
    <Post> </Post>
    </Post> <Tel>
    <Tel> </Tel>
    </Tel> </User>
  </User> <User id="001">
  <User id="001"> <Name>Tom</Name>
    <Name>Tom</Name> <Sex>男</Sex>
    <Sex>男</Sex> <UserName>tom</UserName>
    <UserName>tom</UserName> <UserID>111</UserID>
    <UserID>111</UserID> <Department>host</Department>
    <Department>host</Department> <Working>是</Working>
    <Working>是</Working> <Power>2</Power>
    <Power>2</Power> <Position>工程师</Position>
    <Position>工程师</Position> <Post>
    <Post> </Post>
    </Post> <Tel>111</Tel>
    <Tel>111</Tel> </User>
  </User> <User id="002">
  <User id="002"> <Name>Jef</Name>
    <Name>Jef</Name> <Sex>男</Sex>
    <Sex>男</Sex> <UserName>jef</UserName>
    <UserName>jef</UserName> <UserID>1</UserID>
    <UserID>1</UserID> <Department>jef </Department>
    <Department>jef </Department> <Working>是</Working>
    <Working>是</Working> <Power>2</Power>
    <Power>2</Power> <Position>工程师</Position>
    <Position>工程师</Position> <Post>
    <Post> </Post>
    </Post> <Tel>121</Tel>
    <Tel>121</Tel> </User>
  </User> <User id="1">
  <User id="1"> <Name>1</Name>
    <Name>1</Name> <Sex>1</Sex>
    <Sex>1</Sex> <UserName>1</UserName>
    <UserName>1</UserName> <UseID>1</UseID>
    <UseID>1</UseID> <Department>1</Department>
    <Department>1</Department> <Working>1</Working>
    <Working>1</Working> <Power>1</Power>
    <Power>1</Power> <Position>1</Position>
    <Position>1</Position> <Post>1</Post>
    <Post>1</Post> <Tel>1</Tel>
    <Tel>1</Tel> </User>
  </User> </app:Users>
</app:Users>窗体加载的时候需要XML里面的数据
 private void PopList(ListBox lbUsers)
private void PopList(ListBox lbUsers) {
        { lbUsers.Items.Clear();
            lbUsers.Items.Clear(); XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); //查找每个人员的根接点
            //查找每个人员的根接点 XmlNodeList xList=xdoc.SelectNodes("//User");
            XmlNodeList xList=xdoc.SelectNodes("//User");

 foreach(XmlNode xNode in xList)
            foreach(XmlNode xNode in xList) {
            { lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
                lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText); }
            } }
        }ListBox里面选择转移的时候
 private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); DisplayNotes(name);
            DisplayNotes(name); }
        }

 /*实现当选择人改变的时候 把人名传入方法*/
/*实现当选择人改变的时候 把人名传入方法*/ private void DisplayNotes(string name)
    private void DisplayNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
            XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']"); TextClear();
            TextClear(); foreach(XmlNode node in NList)
            foreach(XmlNode node in NList) {
            { XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node); try
                try {
                { while(NReader.Read())
                    while(NReader.Read()) {
                    { if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element) {
                        { if(NReader.HasAttributes)
                            if(NReader.HasAttributes) {
                            { while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute()) {
                                { if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal") {
                                    { txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value; }
                                    } }
                                } }
                            } }
                        } if(NReader.Name=="Name")
                        if(NReader.Name=="Name") {
                        { txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex") {
                        { txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName") {
                        { txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID") {
                        { txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department") {
                        { txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working") {
                        { txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power") {
                        { txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position") {
                        { txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post") {
                        { txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel") {
                        { txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();
 }
                        } }
                    } }
                } catch(Exception err)
                catch(Exception err) {
                { string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString(); MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg); }
                } finally
                finally {
                { if(NReader!=null)
                    if(NReader!=null) {
                    { NReader.Close();
                        NReader.Close(); }
                    } }
                } }
            } 
         }
        }
新增用户到XML
 private void btnAdd_Click(object sender, System.EventArgs e)
private void btnAdd_Click(object sender, System.EventArgs e) {
        { const string strFileName="User.xml";
            const string strFileName="User.xml"; XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
            XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default); TWriter.WriteStartDocument();
            TWriter.WriteStartDocument(); TWriter.WriteStartElement("app","Users","uri:appraisal");
            TWriter.WriteStartElement("app","Users","uri:appraisal"); TWriter.WriteStartElement("User");
            TWriter.WriteStartElement("User"); TWriter.WriteAttributeString("id",txtID.Text);
            TWriter.WriteAttributeString("id",txtID.Text); TWriter.WriteElementString("Name",txtName.Text);
            TWriter.WriteElementString("Name",txtName.Text); TWriter.WriteElementString("Sex",txtSex.Text);
            TWriter.WriteElementString("Sex",txtSex.Text); TWriter.WriteElementString("UserName",txtUserName.Text);
            TWriter.WriteElementString("UserName",txtUserName.Text); TWriter.WriteElementString("UseID",txtUserID.Text);
            TWriter.WriteElementString("UseID",txtUserID.Text); TWriter.WriteElementString("Department",txtDepartment.Text);
            TWriter.WriteElementString("Department",txtDepartment.Text); TWriter.WriteElementString("Working",txtWorking.Text);
            TWriter.WriteElementString("Working",txtWorking.Text); TWriter.WriteElementString("Power",txtPower.Text);
            TWriter.WriteElementString("Power",txtPower.Text); TWriter.WriteElementString("Position",txtPosition.Text);
            TWriter.WriteElementString("Position",txtPosition.Text); TWriter.WriteElementString("Post",txtPost.Text);
            TWriter.WriteElementString("Post",txtPost.Text); TWriter.WriteElementString("Tel",txtTel.Text);
            TWriter.WriteElementString("Tel",txtTel.Text);
 TWriter.WriteElementString("Tel1", txtTel.Text);
            TWriter.WriteElementString("Tel1", txtTel.Text);
 TWriter.WriteEndElement();
            TWriter.WriteEndElement(); TWriter.WriteEndElement();
            TWriter.WriteEndElement(); TWriter.WriteEndDocument();
            TWriter.WriteEndDocument();
 TWriter.Flush();
            TWriter.Flush(); TWriter.Close();
            TWriter.Close();
 ImportUser("User.xml");
            ImportUser("User.xml"); }
        }

 private void ImportUser(string path)
private void ImportUser(string path) {
        {     string FilePath="Users.xml";
            string FilePath="Users.xml";
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load(FilePath);
            xdoc.Load(FilePath);
 XmlDocument xdocImp=new XmlDocument();
            XmlDocument xdocImp=new XmlDocument(); xdocImp.Load(path);
            xdocImp.Load(path);
 XmlNodeList pNodes=xdocImp.SelectNodes("//User");
            XmlNodeList pNodes=xdocImp.SelectNodes("//User");
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 foreach(XmlNode pNode in pNodes)
            foreach(XmlNode pNode in pNodes) {
            { XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
                XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']"); if(pNodeImp==null)
                if(pNodeImp==null)   {
                { XmlNode importedNode=xdoc.ImportNode(pNode,true);
                    XmlNode importedNode=xdoc.ImportNode(pNode,true); xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
                    xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode); }
                } }
            } xdoc.Save(FilePath);
            xdoc.Save(FilePath); PopList(lbUsers);
            PopList(lbUsers); }
        }
删除用户
 private void btnDelete_Click(object sender, System.EventArgs e)
private void btnDelete_Click(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); TextClear();
            TextClear(); DeleteNotes(name);
            DeleteNotes(name); }
        }
 private void DeleteNotes(string name)
        private void DeleteNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan); XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
            XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']"); rootnode.RemoveChild(node);
            rootnode.RemoveChild(node); xdoc.Save("Users.xml");
            xdoc.Save("Users.xml"); PopList(lbUsers);
            PopList(lbUsers); }
        } private void btnUpdate_Click(object sender, System.EventArgs e)
private void btnUpdate_Click(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); UpdateNotes(name);
            UpdateNotes(name); }
        }
 private void UpdateNotes(string name)
        private void UpdateNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); 
             //创建一个文档片断来存储要替换的节点
            //创建一个文档片断来存储要替换的节点 XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
            XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment(); //新节点的根节点
            //新节点的根节点 XmlElement newElement=xdoc.CreateElement("User");
            XmlElement newElement=xdoc.CreateElement("User"); XmlAttribute newID=xdoc.CreateAttribute("id");
            XmlAttribute newID=xdoc.CreateAttribute("id"); newID.Value=txtID.Text;
            newID.Value=txtID.Text; newElement.Attributes.SetNamedItem(newID);
            newElement.Attributes.SetNamedItem(newID);
 XmlElement newName=xdoc.CreateElement("Name");
            XmlElement newName=xdoc.CreateElement("Name"); newName.InnerText=txtName.Text;
            newName.InnerText=txtName.Text; newElement.AppendChild(newName);
            newElement.AppendChild(newName);
 XmlElement newSex=xdoc.CreateElement("Sex");
            XmlElement newSex=xdoc.CreateElement("Sex"); newSex.InnerText=txtSex.Text;
            newSex.InnerText=txtSex.Text; newElement.AppendChild(newSex);
            newElement.AppendChild(newSex);
 XmlElement newUserName=xdoc.CreateElement("UserName");
            XmlElement newUserName=xdoc.CreateElement("UserName"); newUserName.InnerText=txtUserName.Text;
            newUserName.InnerText=txtUserName.Text; newElement.AppendChild(newUserName);
            newElement.AppendChild(newUserName);
 XmlElement newUserID=xdoc.CreateElement("UserID");
            XmlElement newUserID=xdoc.CreateElement("UserID"); newUserID.InnerText=txtUserID.Text;
            newUserID.InnerText=txtUserID.Text; newElement.AppendChild(newUserID);
            newElement.AppendChild(newUserID);
 XmlElement newWorking=xdoc.CreateElement("Working");
            XmlElement newWorking=xdoc.CreateElement("Working"); newWorking.InnerText=txtWorking.Text;
            newWorking.InnerText=txtWorking.Text; newElement.AppendChild(newWorking);
            newElement.AppendChild(newWorking);
 XmlElement newDepartment=xdoc.CreateElement("Department");
            XmlElement newDepartment=xdoc.CreateElement("Department"); newDepartment.InnerText=txtDepartment.Text;
            newDepartment.InnerText=txtDepartment.Text; newElement.AppendChild(newDepartment);
            newElement.AppendChild(newDepartment);
 XmlElement newPosition=xdoc.CreateElement("Position");
            XmlElement newPosition=xdoc.CreateElement("Position"); newPosition.InnerText=txtPosition.Text;
            newPosition.InnerText=txtPosition.Text; newElement.AppendChild(newPosition);
            newElement.AppendChild(newPosition);
 XmlElement newPost=xdoc.CreateElement("Post");
            XmlElement newPost=xdoc.CreateElement("Post"); newPost.InnerText=txtPost.Text;
            newPost.InnerText=txtPost.Text; newElement.AppendChild(newPost);
            newElement.AppendChild(newPost);
 XmlElement newPower=xdoc.CreateElement("Power");
            XmlElement newPower=xdoc.CreateElement("Power"); newPower.InnerText=txtPower.Text;
            newPower.InnerText=txtPower.Text; newElement.AppendChild(newPower);
            newElement.AppendChild(newPower);
 XmlElement newTel=xdoc.CreateElement("Tel");
            XmlElement newTel=xdoc.CreateElement("Tel"); newTel.InnerText=txtTel.Text;
            newTel.InnerText=txtTel.Text; newTel.AppendChild(newTel);
            newTel.AppendChild(newTel);


 //XmlElement newTel1 = xdoc.CreateElement("Tel1");
            //XmlElement newTel1 = xdoc.CreateElement("Tel1"); //newTel1.InnerText = txtTel.Text;
            //newTel1.InnerText = txtTel.Text; //newTel1.AppendChild(newTel);
            //newTel1.AppendChild(newTel); 
            

 //把新创建的节点加入文档片断
            //把新创建的节点加入文档片断 xdocFrag.AppendChild(newElement);
            xdocFrag.AppendChild(newElement); 
             //确定要替换的节点作替换
            //确定要替换的节点作替换 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan); XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
            XmlElement xChild=(XmlElement)xUsers.ChildNodes[1]; xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
            xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");
 PopList(lbUsers);
            PopList(lbUsers);
 
         }
        } private void btnExport_Click(object sender, System.EventArgs e)
private void btnExport_Click(object sender, System.EventArgs e) {
        { if(txtExport.Text.Trim().Length>0)
            if(txtExport.Text.Trim().Length>0) ExportUsers(txtExport.Text);
                ExportUsers(txtExport.Text); MessageBox.Show("导出成功!");
            MessageBox.Show("导出成功!"); }
        }
 private void ExportUsers(string path)
        private void ExportUsers(string path) {
        { const string OrigPath="Users.xml";
            const string OrigPath="Users.xml"; XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load(OrigPath);
            xdoc.Load(OrigPath); xdoc.Save(path);
            xdoc.Save(path); 
         }
        } private void btnSearch_Click(object sender, System.EventArgs e)
private void btnSearch_Click(object sender, System.EventArgs e) {
        { FindContact(txtSearch.Text);
            FindContact(txtSearch.Text); }
        } /*符合名称的人 进行查询*/
/*符合名称的人 进行查询*/ private void FindContact(string query)
        private void FindContact(string query) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
            XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']"); foreach(XmlNode node in xList)
            foreach(XmlNode node in xList) {
            { XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node); try
                try {
                { while(NReader.Read())
                    while(NReader.Read()) {
                    { if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element) {
                        { if(NReader.HasAttributes)
                            if(NReader.HasAttributes) {
                            { while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute()) {
                                { if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal") {
                                    { txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value; }
                                    } }
                                } }
                            } }
                        } if(NReader.Name=="Name")
                        if(NReader.Name=="Name") {
                        { txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex") {
                        { txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName") {
                        { txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID") {
                        { txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department") {
                        { txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working") {
                        { txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power") {
                        { txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position") {
                        { txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post") {
                        { txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel") {
                        { txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString(); //
                            // }
                        } }
                    } }
                } catch(Exception err)
                catch(Exception err) {
                { string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString(); MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg); }
                } finally
                finally {
                { if(NReader!=null)
                    if(NReader!=null) {
                    { NReader.Close();
                        NReader.Close(); }
                    } }
                } }
            } }
        }
全部代码如下:
 using System;
using System; using System.Drawing;
using System.Drawing; using System.Collections;
using System.Collections; using System.ComponentModel;
using System.ComponentModel; using System.Windows.Forms;
using System.Windows.Forms; using System.Data;
using System.Data; using System.Xml;
using System.Xml; using System.Xml.Xsl;
using System.Xml.Xsl; using System.Xml.XPath;
using System.Xml.XPath; using System.Text;
using System.Text;
 namespace UserManagement
namespace UserManagement {
{ /// <summary>
    /// <summary> /// Form1 的摘要说明。
    /// Form1 的摘要说明。 /// </summary>
    /// </summary> public class frmUser : System.Windows.Forms.Form
    public class frmUser : System.Windows.Forms.Form {
    { private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label1; private System.Windows.Forms.ListBox lbUsers;
        private System.Windows.Forms.ListBox lbUsers; private System.Windows.Forms.TextBox txtSex;
        private System.Windows.Forms.TextBox txtSex; private System.Windows.Forms.TextBox txtUserID;
        private System.Windows.Forms.TextBox txtUserID; private System.Windows.Forms.TextBox txtUserName;
        private System.Windows.Forms.TextBox txtUserName; private System.Windows.Forms.TextBox txtID;
        private System.Windows.Forms.TextBox txtID; private System.Windows.Forms.TextBox txtName;
        private System.Windows.Forms.TextBox txtName; private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label2; private System.Windows.Forms.Label lbID;
        private System.Windows.Forms.Label lbID; private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5;
        private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6;
        private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label7;
        private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label8;
        private System.Windows.Forms.Label label8; private System.Windows.Forms.Label lbUserName;
        private System.Windows.Forms.Label lbUserName; private System.Windows.Forms.TextBox txtPower;
        private System.Windows.Forms.TextBox txtPower; private System.Windows.Forms.TextBox txtPosition;
        private System.Windows.Forms.TextBox txtPosition; private System.Windows.Forms.TextBox txtTel;
        private System.Windows.Forms.TextBox txtTel; private System.Windows.Forms.TextBox txtWorking;
        private System.Windows.Forms.TextBox txtWorking; private System.Windows.Forms.TextBox txtPost;
        private System.Windows.Forms.TextBox txtPost; private System.Windows.Forms.TextBox txtDepartment;
        private System.Windows.Forms.TextBox txtDepartment; private System.Windows.Forms.Label label9;
        private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label10;
        private System.Windows.Forms.Label label10; private System.Windows.Forms.Button btnExport;
        private System.Windows.Forms.Button btnExport; private System.Windows.Forms.TextBox txtExport;
        private System.Windows.Forms.TextBox txtExport; private System.Windows.Forms.Button btnAdd;
        private System.Windows.Forms.Button btnAdd; private System.Windows.Forms.Button btnUpdate;
        private System.Windows.Forms.Button btnUpdate; private System.Windows.Forms.Button btnDelete;
        private System.Windows.Forms.Button btnDelete; private System.Windows.Forms.Button btnSearch;
        private System.Windows.Forms.Button btnSearch; private System.Windows.Forms.TextBox txtSearch;
        private System.Windows.Forms.TextBox txtSearch; private System.Windows.Forms.Button btnClear;
        private System.Windows.Forms.Button btnClear; private System.Windows.Forms.MainMenu mnuMain;
        private System.Windows.Forms.MainMenu mnuMain; private System.Windows.Forms.MenuItem menuItem1;
        private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem menuExit;
        private System.Windows.Forms.MenuItem menuExit; /// <summary>
        /// <summary> /// 必需的设计器变量。
        /// 必需的设计器变量。 /// </summary>
        /// </summary> private System.ComponentModel.Container components = null;
        private System.ComponentModel.Container components = null;
 public frmUser()
        public frmUser() {
        { //
            // // Windows 窗体设计器支持所必需的
            // Windows 窗体设计器支持所必需的 //
            // InitializeComponent();
            InitializeComponent();
 //
            // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 //
            // }
        }
 /// <summary>
        /// <summary> /// 清理所有正在使用的资源。
        /// 清理所有正在使用的资源。 /// </summary>
        /// </summary> protected override void Dispose( bool disposing )
        protected override void Dispose( bool disposing ) {
        { if( disposing )
            if( disposing ) {
            { if (components != null)
                if (components != null)  {
                { components.Dispose();
                    components.Dispose(); }
                } }
            } base.Dispose( disposing );
            base.Dispose( disposing ); }
        }
 Windows 窗体设计器生成的代码
        Windows 窗体设计器生成的代码
 /// <summary>
        /// <summary> /// 应用程序的主入口点。
        /// 应用程序的主入口点。 /// </summary>
        /// </summary> [STAThread]
        [STAThread] static void Main()
        static void Main()  {
        { Application.Run(new frmUser());
            Application.Run(new frmUser()); }
        }
 private void frmUser_Load(object sender, System.EventArgs e)
        private void frmUser_Load(object sender, System.EventArgs e) {
        { PopList(lbUsers);
            PopList(lbUsers); }
        }
 private void PopList(ListBox lbUsers)
        private void PopList(ListBox lbUsers) {
        { lbUsers.Items.Clear();
            lbUsers.Items.Clear(); XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); //查找每个人员的根接点
            //查找每个人员的根接点 XmlNodeList xList=xdoc.SelectNodes("//User");
            XmlNodeList xList=xdoc.SelectNodes("//User");

 foreach(XmlNode xNode in xList)
            foreach(XmlNode xNode in xList) {
            { lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText);
                lbUsers.Items.Add(xNode.ChildNodes.Item(0).InnerText); }
            } }
        }
 private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e)
        private void lbUsers_SelectedIndexChanged(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); DisplayNotes(name);
            DisplayNotes(name); }
        }
 private void TextClear()
        private void TextClear() {
        { txtName.Text="";
            txtName.Text=""; txtID.Text="";
            txtID.Text=""; txtSex.Text="";
            txtSex.Text=""; txtUserName.Text="";
            txtUserName.Text=""; txtUserID.Text="";
            txtUserID.Text=""; txtWorking.Text="";
            txtWorking.Text=""; txtDepartment.Text="";
            txtDepartment.Text=""; txtPosition.Text="";
            txtPosition.Text=""; txtPost.Text="";
            txtPost.Text=""; txtPower.Text="";
            txtPower.Text=""; txtTel.Text="";
            txtTel.Text=""; }
        }
 private void DisplayNotes(string name)
        private void DisplayNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']");
            XmlNodeList NList=xdoc.SelectNodes("//User[Name='"+name+"']"); TextClear();
            TextClear(); foreach(XmlNode node in NList)
            foreach(XmlNode node in NList) {
            { XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node); try
                try {
                { while(NReader.Read())
                    while(NReader.Read()) {
                    { if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element) {
                        { if(NReader.HasAttributes)
                            if(NReader.HasAttributes) {
                            { while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute()) {
                                { if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal") {
                                    { txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value; }
                                    } }
                                } }
                            } }
                        } if(NReader.Name=="Name")
                        if(NReader.Name=="Name") {
                        { txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex") {
                        { txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName") {
                        { txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID") {
                        { txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department") {
                        { txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working") {
                        { txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power") {
                        { txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position") {
                        { txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post") {
                        { txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel") {
                        { txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString();
 }
                        } }
                    } }
                } catch(Exception err)
                catch(Exception err) {
                { string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString(); MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg); }
                } finally
                finally {
                { if(NReader!=null)
                    if(NReader!=null) {
                    { NReader.Close();
                        NReader.Close(); }
                    } }
                } }
            } 
         }
        }
 private void btnExport_Click(object sender, System.EventArgs e)
        private void btnExport_Click(object sender, System.EventArgs e) {
        { if(txtExport.Text.Trim().Length>0)
            if(txtExport.Text.Trim().Length>0) ExportUsers(txtExport.Text);
                ExportUsers(txtExport.Text); MessageBox.Show("导出成功!");
            MessageBox.Show("导出成功!"); }
        }
 private void ExportUsers(string path)
        private void ExportUsers(string path) {
        { const string OrigPath="Users.xml";
            const string OrigPath="Users.xml"; XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load(OrigPath);
            xdoc.Load(OrigPath); xdoc.Save(path);
            xdoc.Save(path); 
         }
        }
 private void btnAdd_Click(object sender, System.EventArgs e)
        private void btnAdd_Click(object sender, System.EventArgs e) {
        { const string strFileName="User.xml";
            const string strFileName="User.xml"; XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default);
            XmlTextWriter TWriter=new XmlTextWriter(strFileName,Encoding.Default); TWriter.WriteStartDocument();
            TWriter.WriteStartDocument(); TWriter.WriteStartElement("app","Users","uri:appraisal");
            TWriter.WriteStartElement("app","Users","uri:appraisal"); TWriter.WriteStartElement("User");
            TWriter.WriteStartElement("User"); TWriter.WriteAttributeString("id",txtID.Text);
            TWriter.WriteAttributeString("id",txtID.Text); TWriter.WriteElementString("Name",txtName.Text);
            TWriter.WriteElementString("Name",txtName.Text); TWriter.WriteElementString("Sex",txtSex.Text);
            TWriter.WriteElementString("Sex",txtSex.Text); TWriter.WriteElementString("UserName",txtUserName.Text);
            TWriter.WriteElementString("UserName",txtUserName.Text); TWriter.WriteElementString("UseID",txtUserID.Text);
            TWriter.WriteElementString("UseID",txtUserID.Text); TWriter.WriteElementString("Department",txtDepartment.Text);
            TWriter.WriteElementString("Department",txtDepartment.Text); TWriter.WriteElementString("Working",txtWorking.Text);
            TWriter.WriteElementString("Working",txtWorking.Text); TWriter.WriteElementString("Power",txtPower.Text);
            TWriter.WriteElementString("Power",txtPower.Text); TWriter.WriteElementString("Position",txtPosition.Text);
            TWriter.WriteElementString("Position",txtPosition.Text); TWriter.WriteElementString("Post",txtPost.Text);
            TWriter.WriteElementString("Post",txtPost.Text); TWriter.WriteElementString("Tel",txtTel.Text);
            TWriter.WriteElementString("Tel",txtTel.Text);
 TWriter.WriteElementString("Tel1", txtTel.Text);
            TWriter.WriteElementString("Tel1", txtTel.Text);
 TWriter.WriteEndElement();
            TWriter.WriteEndElement(); TWriter.WriteEndElement();
            TWriter.WriteEndElement(); TWriter.WriteEndDocument();
            TWriter.WriteEndDocument();
 TWriter.Flush();
            TWriter.Flush(); TWriter.Close();
            TWriter.Close();
 ImportUser("User.xml");
            ImportUser("User.xml"); }
        } 
         private void ImportUser(string path)
        private void ImportUser(string path) {
        {     string FilePath="Users.xml";
            string FilePath="Users.xml";
 XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load(FilePath);
            xdoc.Load(FilePath);
 XmlDocument xdocImp=new XmlDocument();
            XmlDocument xdocImp=new XmlDocument(); xdocImp.Load(path);
            xdocImp.Load(path);
 XmlNodeList pNodes=xdocImp.SelectNodes("//User");
            XmlNodeList pNodes=xdocImp.SelectNodes("//User");
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 foreach(XmlNode pNode in pNodes)
            foreach(XmlNode pNode in pNodes) {
            { XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']");
                XmlNode pNodeImp=xdoc.SelectSingleNode("//User[Name='"+pNode.ChildNodes.Item(0).InnerXml+"']"); if(pNodeImp==null)
                if(pNodeImp==null)   {
                { XmlNode importedNode=xdoc.ImportNode(pNode,true);
                    XmlNode importedNode=xdoc.ImportNode(pNode,true); xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode);
                    xdoc.SelectSingleNode("//app:Users",nameMan).AppendChild(importedNode); }
                } }
            } xdoc.Save(FilePath);
            xdoc.Save(FilePath); PopList(lbUsers);
            PopList(lbUsers); }
        }
 private void btnUpdate_Click(object sender, System.EventArgs e)
        private void btnUpdate_Click(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); UpdateNotes(name);
            UpdateNotes(name); }
        }
 private void UpdateNotes(string name)
        private void UpdateNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); 
             //创建一个文档片断来存储要替换的节点
            //创建一个文档片断来存储要替换的节点 XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment();
            XmlDocumentFragment xdocFrag=xdoc.CreateDocumentFragment(); //新节点的根节点
            //新节点的根节点 XmlElement newElement=xdoc.CreateElement("User");
            XmlElement newElement=xdoc.CreateElement("User"); XmlAttribute newID=xdoc.CreateAttribute("id");
            XmlAttribute newID=xdoc.CreateAttribute("id"); newID.Value=txtID.Text;
            newID.Value=txtID.Text; newElement.Attributes.SetNamedItem(newID);
            newElement.Attributes.SetNamedItem(newID);
 XmlElement newName=xdoc.CreateElement("Name");
            XmlElement newName=xdoc.CreateElement("Name"); newName.InnerText=txtName.Text;
            newName.InnerText=txtName.Text; newElement.AppendChild(newName);
            newElement.AppendChild(newName);
 XmlElement newSex=xdoc.CreateElement("Sex");
            XmlElement newSex=xdoc.CreateElement("Sex"); newSex.InnerText=txtSex.Text;
            newSex.InnerText=txtSex.Text; newElement.AppendChild(newSex);
            newElement.AppendChild(newSex);
 XmlElement newUserName=xdoc.CreateElement("UserName");
            XmlElement newUserName=xdoc.CreateElement("UserName"); newUserName.InnerText=txtUserName.Text;
            newUserName.InnerText=txtUserName.Text; newElement.AppendChild(newUserName);
            newElement.AppendChild(newUserName);
 XmlElement newUserID=xdoc.CreateElement("UserID");
            XmlElement newUserID=xdoc.CreateElement("UserID"); newUserID.InnerText=txtUserID.Text;
            newUserID.InnerText=txtUserID.Text; newElement.AppendChild(newUserID);
            newElement.AppendChild(newUserID);
 XmlElement newWorking=xdoc.CreateElement("Working");
            XmlElement newWorking=xdoc.CreateElement("Working"); newWorking.InnerText=txtWorking.Text;
            newWorking.InnerText=txtWorking.Text; newElement.AppendChild(newWorking);
            newElement.AppendChild(newWorking);
 XmlElement newDepartment=xdoc.CreateElement("Department");
            XmlElement newDepartment=xdoc.CreateElement("Department"); newDepartment.InnerText=txtDepartment.Text;
            newDepartment.InnerText=txtDepartment.Text; newElement.AppendChild(newDepartment);
            newElement.AppendChild(newDepartment);
 XmlElement newPosition=xdoc.CreateElement("Position");
            XmlElement newPosition=xdoc.CreateElement("Position"); newPosition.InnerText=txtPosition.Text;
            newPosition.InnerText=txtPosition.Text; newElement.AppendChild(newPosition);
            newElement.AppendChild(newPosition);
 XmlElement newPost=xdoc.CreateElement("Post");
            XmlElement newPost=xdoc.CreateElement("Post"); newPost.InnerText=txtPost.Text;
            newPost.InnerText=txtPost.Text; newElement.AppendChild(newPost);
            newElement.AppendChild(newPost);
 XmlElement newPower=xdoc.CreateElement("Power");
            XmlElement newPower=xdoc.CreateElement("Power"); newPower.InnerText=txtPower.Text;
            newPower.InnerText=txtPower.Text; newElement.AppendChild(newPower);
            newElement.AppendChild(newPower);
 XmlElement newTel=xdoc.CreateElement("Tel");
            XmlElement newTel=xdoc.CreateElement("Tel"); newTel.InnerText=txtTel.Text;
            newTel.InnerText=txtTel.Text; newTel.AppendChild(newTel);
            newTel.AppendChild(newTel);


 //XmlElement newTel1 = xdoc.CreateElement("Tel1");
            //XmlElement newTel1 = xdoc.CreateElement("Tel1"); //newTel1.InnerText = txtTel.Text;
            //newTel1.InnerText = txtTel.Text; //newTel1.AppendChild(newTel);
            //newTel1.AppendChild(newTel); 
            

 //把新创建的节点加入文档片断
            //把新创建的节点加入文档片断 xdocFrag.AppendChild(newElement);
            xdocFrag.AppendChild(newElement); 
             //确定要替换的节点作替换
            //确定要替换的节点作替换 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlElement xUsers=(XmlElement)xdoc.SelectSingleNode("//app:Users",nameMan); XmlElement xChild=(XmlElement)xUsers.ChildNodes[1];
            XmlElement xChild=(XmlElement)xUsers.ChildNodes[1]; xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
            xUsers.ReplaceChild(xdocFrag.FirstChild,xChild);
 xdoc.Save("Users.xml");
            xdoc.Save("Users.xml");
 PopList(lbUsers);
            PopList(lbUsers);
 
         }
        }
 private void btnDelete_Click(object sender, System.EventArgs e)
        private void btnDelete_Click(object sender, System.EventArgs e) {
        { string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem);
            string itemtext=lbUsers.GetItemText(lbUsers.SelectedItem); string name=itemtext.Trim().ToString();
            string name=itemtext.Trim().ToString(); TextClear();
            TextClear(); DeleteNotes(name);
            DeleteNotes(name); }
        }
 private void DeleteNotes(string name)
        private void DeleteNotes(string name) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml");
 NameTable nametable=new NameTable();
            NameTable nametable=new NameTable(); XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable);
            XmlNamespaceManager nameMan=new XmlNamespaceManager(nametable); nameMan.AddNamespace("app","uri:appraisal");
            nameMan.AddNamespace("app","uri:appraisal");
 XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan);
            XmlNode rootnode=xdoc.SelectSingleNode("//app:Users",nameMan); XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']");
            XmlNode node=xdoc.SelectSingleNode("//User[Name='"+name+"']"); rootnode.RemoveChild(node);
            rootnode.RemoveChild(node); xdoc.Save("Users.xml");
            xdoc.Save("Users.xml"); PopList(lbUsers);
            PopList(lbUsers); }
        }
 private void btnSearch_Click(object sender, System.EventArgs e)
        private void btnSearch_Click(object sender, System.EventArgs e) {
        { FindContact(txtSearch.Text);
            FindContact(txtSearch.Text); }
        }
 private void FindContact(string query)
        private void FindContact(string query) {
        { XmlDocument xdoc=new XmlDocument();
            XmlDocument xdoc=new XmlDocument(); xdoc.Load("Users.xml");
            xdoc.Load("Users.xml"); XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']");
            XmlNodeList xList=xdoc.SelectNodes("//User[Name='"+query+"']"); foreach(XmlNode node in xList)
            foreach(XmlNode node in xList) {
            { XmlNodeReader NReader=new XmlNodeReader(node);
                XmlNodeReader NReader=new XmlNodeReader(node); try
                try {
                { while(NReader.Read())
                    while(NReader.Read()) {
                    { if(NReader.NodeType==XmlNodeType.Element)
                        if(NReader.NodeType==XmlNodeType.Element) {
                        { if(NReader.HasAttributes)
                            if(NReader.HasAttributes) {
                            { while(NReader.MoveToNextAttribute())
                                while(NReader.MoveToNextAttribute()) {
                                { if(NReader.Value!="uri:appraisal")
                                    if(NReader.Value!="uri:appraisal") {
                                    { txtID.Text=NReader.Value;
                                        txtID.Text=NReader.Value; }
                                    } }
                                } }
                            } }
                        } if(NReader.Name=="Name")
                        if(NReader.Name=="Name") {
                        { txtName.Text=NReader.ReadString();
                            txtName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Sex")
                        else if(NReader.Name=="Sex") {
                        { txtSex.Text=NReader.ReadString();
                            txtSex.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserName")
                        else if(NReader.Name=="UserName") {
                        { txtUserName.Text=NReader.ReadString();
                            txtUserName.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="UserID")
                        else if(NReader.Name=="UserID") {
                        { txtUserID.Text=NReader.ReadString();
                            txtUserID.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Department")
                        else if(NReader.Name=="Department") {
                        { txtDepartment.Text=NReader.ReadString();
                            txtDepartment.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Working")
                        else if(NReader.Name=="Working") {
                        { txtWorking.Text=NReader.ReadString();
                            txtWorking.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Power")
                        else if(NReader.Name=="Power") {
                        { txtPower.Text=NReader.ReadString();
                            txtPower.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Position")
                        else if(NReader.Name=="Position") {
                        { txtPosition.Text=NReader.ReadString();
                            txtPosition.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Post")
                        else if(NReader.Name=="Post") {
                        { txtPost.Text=NReader.ReadString();
                            txtPost.Text=NReader.ReadString(); }
                        } else if(NReader.Name=="Tel")
                        else if(NReader.Name=="Tel") {
                        { txtTel.Text=NReader.ReadString();
                            txtTel.Text=NReader.ReadString(); //
                            // }
                        } }
                    } }
                } catch(Exception err)
                catch(Exception err) {
                { string errmsg="读取文件错误"+err.ToString();
                    string errmsg="读取文件错误"+err.ToString(); MessageBox.Show(errmsg);
                    MessageBox.Show(errmsg); }
                } finally
                finally {
                { if(NReader!=null)
                    if(NReader!=null) {
                    { NReader.Close();
                        NReader.Close(); }
                    } }
                } }
            } }
        }
 private void btnClear_Click(object sender, System.EventArgs e)
        private void btnClear_Click(object sender, System.EventArgs e) {
        { TextClear();
            TextClear(); }
        }
 private void menuExit_Click(object sender, System.EventArgs e)
        private void menuExit_Click(object sender, System.EventArgs e) {
        { this.Close();
            this.Close(); }
        }
 
     }
    } }
}
 
                    
                 
        
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号