1.创建XML文档:
     //这是XML文档根节点名
            string rootNodeName = "books";            
            //这是XML文档物理文件名(包含物理路径)
            string xmlFileName = Application.StartupPath + @"\book.xml";
            XMLHelper.CreateXmlDocument(xmlFileName, rootNodeName, "1.0", "utf-8", null);
            MessageBox.Show("XML文档创建成功:" + xmlFileName);
 
 
2.向XML文档中添加一个新节点:
            string xmlFileName = Application.StartupPath + @"\book.xml";
            string xpath = "/books";  //这是新节点的父节点路径
            string nodename = "book"; //这是新节点名称,在父节点下新增
            string nodetext = "这是新节点中的文本值";
            bool isSuccess = XMLHelper.CreateOrUpdateXmlNodeByXPath(xmlFileName, xpath, nodename, nodetext);
            MessageBox.Show("XML节点添加或更新成功:" + isSuccess.ToString());
 
 
 
3.向XML文档中的子节点中新增或修改(如果存在则修改)一个子节点,比如name,author,date节点等:
            string xmlFileName = Application.StartupPath + @"\book.xml";
            string xpath = "/books/book";  //这是新子节点的父节点路径
            string nodename = "name"; //这是新子节点名称,在父节点下新增
            string nodetext = "我的世界我的梦";
            bool isSuccess = XMLHelper.CreateOrUpdateXmlNodeByXPath(xmlFileName, xpath, nodename, nodetext);
            MessageBox.Show("XML节点添加或更新成功:" + isSuccess.ToString());
 
 
4. 向XML文档中的子节点中新增或修改(如果存在则修改)一个子节点属性,比如id,ISDN属性等:
            string xmlFileName = Application.StartupPath + @"\book.xml";
            string xpath = "/books/book"; //要新增属性的节点
            string attributeName = "id"; //新属性名称,ISDN号也是这么新增的
            string attributeValue = "1"; //新属性值
            bool isSuccess = XMLHelper.CreateOrUpdateXmlAttributeByXPath(xmlFileName, xpath, attributeName, attributeValue);
            MessageBox.Show("XML属性添加或更新成功:" + isSuccess.ToString());
 
 
5. 删除XML文档中的子节点:
            string xmlFileName = Application.StartupPath + @"\book.xml";
            string xpath = "/books/book[@id=‘1‘]"; //要删除的id为1的book子节点
            bool isSuccess = XMLHelper.DeleteXmlNodeByXPath(xmlFileName, xpath);
            MessageBox.Show("XML节点删除成功:" + isSuccess.ToString());
 
 
6. 删除XML文档中子节点的属性:
            string xmlFileName = Application.StartupPath + @"\book.xml";
            //删除id为2的book子节点中的ISDN属性
            string xpath = "/books/book[@id=‘2‘]";
            string attributeName = "ISDN";
            bool isSuccess = XMLHelper.DeleteXmlAttributeByXPath(xmlFileName, xpath,attributeName);
            MessageBox.Show("XML属性删除成功:" + isSuccess.ToString());
 
 
7.读取XML文档中的所有子节点:
            string xmlFileName = Application.StartupPath + @"\book.xml";
//要读的id为1的book子节点
            string xpath = "/books/book[@id=‘1‘]";
            XmlNodeList nodeList = XMLHelper.GetXmlNodeListByXpath(xmlFileName, xpath);
            string strAllNode = "";
            //遍历节点中所有的子节点
            foreach (XmlNode node in nodeList)
            {
                strAllNode += "\n name:" + node.Name + " InnerText:" + node.InnerText;
            }
            MessageBox.Show("XML节点中所有子节点有:" + strAllNode);
 
 
8.其它的方法我就不一一的例举了,各位自己动手去尝试便知,关键的地方就是那个xpath的参数设置了,
这个是XML文档中xpath语法,大家去网上一查便明白,好了,我要休息去,明白偶还有很多的工作做... 
源码:http://files.cnblogs.com/greatverve/XmlHelper.rar