XMLOperator[C#]

http://blog.youkuaiyun.com/zhang98722/article/details/6778990
public class XMLOperator  
    {  
        //声明一个XmlDocument空对象   
        protected XmlDocument XmlDoc = new XmlDocument();  
  
        /// <summary>   
        /// 构造函数,导入Xml文件   
        /// </summary>   
        /// <param name="xmlFile">文件虚拟路径</param>   
        public XMLOperator(string xmlFile)  
        {  
            try  
            {  
                XmlDoc.Load(xmlFile); //载入Xml文档   
            }  
            catch (System.Exception ex)  
            {  
                throw ex;  
            }  
        }  
        /// <summary>   
        /// 析构函数   
        /// </summary>   
        ~XMLOperator()  
        {  
            XmlDoc = null; //释放XmlDocument对象   
        }  
  
        /// <summary>   
        /// 保存文件   
        /// </summary>   
        /// <param name="filePath">文件虚拟路径</param>   
        public void Save(string filePath)  
        {  
            try  
            {  
                XmlDoc.Save(filePath);  
            }  
            catch (System.Exception ex)  
            {  
                throw ex;  
            }  
        }  
  
        /// <summary>   
        /// 返回Xml文件实际路径   
        /// </summary>   
        /// <param name="xmlFile">文件虚拟路径</param>   
        /// <returns></returns>   
        public string GetXmlFilePath(string xmlFile)  
        {  
  
            return HttpContext.Current.Server.MapPath(xmlFile);  
        }  
  
        /// <summary>   
        /// 属性查询,返回属性值   
        /// </summary>   
        /// <param name="XmlPathNode">属性所在的节点</param>   
        /// <param name="Attrib">属性</param>   
        /// <returns></returns>   
        public string SelectAttrib(string XmlPathNode, string Attrib)  
        {  
            string _strNode = "";  
            try  
            {  
                _strNode = XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value;  
            }  
            catch  
            { }  
            return _strNode;  
        }  
  
        /// <summary>   
        /// 节点查询,返回节点值   
        /// </summary>   
        /// <param name="XmlPathNode">节点的路径</param>   
        /// <returns></returns>   
        public string SelectNodeText(string XmlPathNode)  
        {  
            string _nodeTxt = XmlDoc.SelectSingleNode(XmlPathNode).InnerText;  
            if (_nodeTxt == null || _nodeTxt == "")  
                return "";  
            else  
                return _nodeTxt;  
        }  
  
        /// <summary>   
        /// 节点值查询判断   
        /// </summary>   
        /// <param name="XmlPathNode">父节点</param>   
        /// <param name="index">节点索引</param>   
        /// <param name="NodeText">节点值</param>   
        /// <returns></returns>   
        public bool SelectNode(string XmlPathNode, int index, string NodeText)  
        {  
            try  
            {  
                XmlNodeList _NodeList = XmlDoc.SelectNodes(XmlPathNode);  
                //循环遍历节点,查询是否存在该节点   
                for (int i = 0; i < _NodeList.Count; i++)  
                {  
                    if (_NodeList[i].ChildNodes[index].InnerText == NodeText)  
                    {  
                        return true;  
                    }  
                }  
            }  
            catch  
            {  
            }  
            return false;  
        }  
  
        /// <summary>   
        /// 获取子节点个数   
        /// </summary>   
        /// <param name="XmlPathNode">父节点</param>   
        /// <returns></returns>   
        public int NodeCount(string XmlPathNode)  
        {  
            int i = 0;  
            try  
            {  
                i = XmlDoc.SelectSingleNode(XmlPathNode).ChildNodes.Count;  
            }  
            catch  
            {  
                i = 0;  
            }  
            return i;  
        }  
  
        /// <summary>   
        /// 更新一个节点的内容   
        /// </summary>   
        /// <param name="XmlPathNode">节点的路径</param>   
        /// <param name="Content">新的节点值</param>   
        /// <returns></returns>   
        public bool UpdateNode(string XmlPathNode, string NodeContent)  
        {  
            try  
            {  
                XmlDoc.SelectSingleNode(XmlPathNode).InnerText = NodeContent;  
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
  
        /// <summary>   
        /// 更新N个节点值   
        /// </summary>   
        /// <param name="XmlParentNode">父节点</param>   
        /// <param name="XmlNode">子节点</param>   
        /// <param name="NodeContent">子节点内容</param>   
        /// <returns></returns>   
        public bool UpdateNode(string XmlParentNode, string[] XmlNode, string[] NodeContent)  
        {  
            try  
            {  
                //根据节点数组循环修改节点值   
                for (int i = 0; i < XmlNode.Length; i++)  
                {  
                    XmlDoc.SelectSingleNode(XmlParentNode + "/" + XmlNode[i]).InnerText = NodeContent[i];  
                }  
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
  
        /// <summary>   
        /// 修改属性   
        /// </summary>   
        /// <param name="XmlPathNode">属性所在的节点</param>   
        /// <param name="Attrib">属性名</param>   
        /// <param name="Content">属性值</param>   
        /// <returns></returns>   
        public bool UpdateAttrib(string XmlPathNode, string Attrib, string AttribContent)  
        {  
            try  
            {  
                //修改属性值   
                XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value = AttribContent;  
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
  
  
        /// <summary>   
        /// 添加属性   
        /// </summary>   
        /// <param name="MainNode">属性所在节点</param>   
        /// <param name="Attrib">属性名</param>   
        /// <param name="AttribContent">属性值</param>   
        /// <returns></returns>   
        public bool InsertAttrib(string MainNode, string Attrib, string AttribContent)  
        {  
            try  
            {  
                XmlElement objNode = (XmlElement)XmlDoc.SelectSingleNode(MainNode); //强制转化成XmlElement对象   
                objNode.SetAttribute(Attrib, AttribContent); //XmlElement对象添加属性方法      
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
  
  
        /// <summary>   
        /// 插入一个节点,带N个子节点   
        /// </summary>   
        /// <param name="MainNode">插入节点的父节点</param>   
        /// <param name="ChildNode">插入节点的元素名</param>   
        /// <param name="Element">插入节点的子节点名数组</param>   
        /// <param name="Content">插入节点的子节点内容数组</param>   
        /// <returns></returns>   
        public bool InsertNode(string MainNode, string ChildNode, string[] Element, string[] Content)  
        {  
            try  
            {  
                XmlNode objRootNode = XmlDoc.SelectSingleNode(MainNode); //声明XmlNode对象   
                XmlElement objChildNode = XmlDoc.CreateElement(ChildNode); //创建XmlElement对象   
                objRootNode.AppendChild(objChildNode);  
                for (int i = 0; i < Element.Length; i++) //循环插入节点元素   
                {  
                    XmlElement objElement = XmlDoc.CreateElement(Element[i]);  
                    objElement.InnerText = Content[i];  
                    objChildNode.AppendChild(objElement);  
                }  
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
  
        /// <summary>   
        /// 删除一个节点   
        /// </summary>   
        /// <param name="Node">要删除的节点</param>   
        /// <returns></returns>   
        public bool DeleteNode(string Node)  
        {  
            try  
            {  
                //XmlNode的RemoveChild方法来删除节点及其所有子节点   
                XmlDoc.SelectSingleNode(Node).ParentNode.RemoveChild(XmlDoc.SelectSingleNode(Node));  
                return true;  
            }  
            catch  
            {  
                return false;  
            }  
        }  
    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值