代码改变世界

XML操作

2013-11-08 15:44  mch.zhang  阅读(177)  评论(0)    收藏  举报
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace Xml
{
    public class XmlOperate
    {
        #region 创建XML文件
        /// <summary>
        /// 创建XML文件
        /// </summary>
        public static void CreateXml()
        {
            //创建一个XML文档
            XmlDocument doc = new XmlDocument();
            //创建一个文件信息
            doc.AppendChild(doc.CreateXmlDeclaration("1.0", "utf-8", null));
            //创建一个节点
            XmlElement root = doc.CreateElement("Books");
            //创建当前节点属性
            root.SetAttribute("Desc", "根节点描述");
            doc.AppendChild(root);
            //保存到文件中
            doc.Save(@"E:\代码研究\XmlOperate\Xml\Books.xml");
        } 
        #endregion

        #region 选择XML节点并添加一个新的节点
        /// <summary>
        /// 选择XML节点
        /// </summary>
        public static void SelectNodeAndNewElement()
        {
            //创建一个XML文档
            XmlDocument doc = new XmlDocument();
            //加载文档
            doc.Load(@"E:\代码研究\XmlOperate\Xml\Books.xml");
            //选择根节点
            XmlNode selectNode = doc.SelectSingleNode("Books");
            //创建一个新的节点
            XmlElement bookNode = doc.CreateElement("Book");
            //添加属性
            bookNode.SetAttribute("Desciption", "添加的节点");
            //添加节点内容
            bookNode.InnerXml = "CSS高级查询";
            //将新增加的节点添加到根节点中
            selectNode.AppendChild(bookNode);
            //保存到文件中
            doc.Save(@"E:\代码研究\XmlOperate\Xml\Books.xml");
        }
        #endregion

        #region 更新选择的节点
        /// <summary>
        /// 更新选择的节点内容
        /// </summary>
        public static void UpdateSelectNode()
        {
            //创建一个文件
            XmlDocument doc = new XmlDocument();
            //加载文件
            doc.Load(@"E:\代码研究\XmlOperate\Xml\Books.xml");
            //获取根节点下得所有节点
            XmlNodeList nodeList = doc.SelectSingleNode("Books").ChildNodes;
            //遍历子节点
            foreach (XmlNode item in nodeList)
            {
                //将子节点类型转换为XmlElement
                XmlElement xe = (XmlElement)item;
                //修改Desciption的值为添加的节点
                if (xe.GetAttribute("Desciption").Equals("添加的节点"))
                {
                    //修改属性的值
                    xe.SetAttribute("Desciption","更新后的值");
                }
            }
            //保存修改
            doc.Save(@"E:\代码研究\XmlOperate\Xml\Books.xml");
        }
        #endregion

        #region 删除选中属性的值
        /// <summary>
        /// 删除选中属性的值
        /// </summary>
        public static void DeleteSelectNodeAttribute()
        {
            //创建一个XML文档
            XmlDocument doc = new XmlDocument();
            //在家XML文档
            doc.Load(@"E:\代码研究\XmlOperate\Xml\Books.xml");
            //选择根节点集合
            XmlNodeList list = doc.SelectSingleNode("Books").ChildNodes;
            //选择节点
            foreach (XmlNode item in list)
            {
                //将子节点类型转换为XmlElement
                XmlElement xe = (XmlElement)item;
                if (xe.GetAttribute("Desciption").Equals("更新后的值"))
                {
                    //移除选中属性的值
                    xe.RemoveAttribute("Desciption");
                }
            }
            //保存修改
            doc.Save(@"E:\代码研究\XmlOperate\Xml\Books.xml");
        }
        #endregion

        #region 删除选中的节点
        public static void DeleteSelectNode()
        {
            XmlDocument doc = new XmlDocument();
            //在家XML文档
            doc.Load(@"E:\代码研究\XmlOperate\Xml\Books.xml");
            //选择根节点集合
            XmlNodeList list = doc.SelectSingleNode("Books").ChildNodes;
            foreach (XmlNode item in list)
            {
                XmlElement xe = (XmlElement)item;
                if (xe.GetAttribute("Desc").Equals("xx"))
                {
                    xe.RemoveAll();
                }
            }
            doc.Save(@"E:\代码研究\XmlOperate\Xml\Books.xml");
        }
        #endregion
    }
}