XML帮助类


1:带有一个路径的参数构造方法
2:创建XML的根节点方法
3:新增节点方法
4:删除节点方法     
5:保存XML文件方法
6:创建根节点对象方法    
7:获取指定XPath表达式节点的值方法
8:获取指定XPath表达式节点的属性值方法   
9:获取指定XPath表达式的节点对象方法
 

     public class SysHelper
    {
        #region 字段定义

        /// 路径
        private string filePath = string.Empty;

        private XmlDocument xml;

        private XmlElement element;
        #endregion



        #region 构造方法

        /// 实例化XmlHelper对象
        public void XmlHelper(string xmlFilePath)
        {
            //获取XML文件的绝对路径
            filePath = SysHelper.GetPhysicalPath(xmlFilePath);
        }
        #endregion




        #region 创建XML的根节点
        /// <summary>
        /// 创建XML的根节点
        /// </summary>
        private void CreateXMLElement()
        {
            //检测缓存中是否存在指定文件名的XmlDocument对象
            if (CacheHelper.Contains(filePath))
            {
                //如果存在,则从缓存中读取
                xml = CacheHelper.GetCache<XmlDocument>(filePath);
            }
            else
            {
                //创建一个XML对象
                xml = new XmlDocument();

                if (FileHelper.IsExistFile(filePath))
                {
                    //加载XML文件
                    xml.Load(this.filePath);

                    //将XmlDocument对象放入缓存
                    CacheHelper.SetCache<XmlDocument>(filePath, xml, filePath);
                }
            }

            //为XML的根节点赋值
            element = xml.DocumentElement;
        }
        #endregion



        #region 新增节点
        /// 1. 功能:新增节点。
        /// 2. 使用条件:将任意节点插入到当前Xml文件中。
        /// <param name="xmlNode">要插入的Xml节点</param>
        public void AppendNode(XmlNode xmlNode)
        {
            //创建XML的根节点
            CreateXMLElement();

            //导入节点
            XmlNode node = xml.ImportNode(xmlNode, true);

            //将节点插入到根节点下
            element.AppendChild(node);
        }

        public void AppendNode(DataSet ds)
        {
            //创建XmlDataDocument对象
            XmlDataDocument xmlDataDocument = new XmlDataDocument(ds);

            //导入节点
            XmlNode node = xmlDataDocument.DocumentElement.FirstChild;

            //将节点插入到根节点下
            AppendNode(node);
        }
        #endregion




        #region 删除节点
                /// 删除指定XPath表达式的节点
      
                /// <param name="xPath">XPath表达式,
                public void RemoveNode(string xPath)
                {
                    //创建XML的根节点
                    CreateXMLElement();

                    //获取要删除的节点
                    XmlNode node = xml.SelectSingleNode(xPath);

                    //删除节点
                    element.RemoveChild(node);
                }
                #endregion //删除节点




        #region 保存XML文件
        /// <summary>
        /// 保存XML文件
        /// </summary>        
        public void Save()
        {
            //创建XML的根节点
            CreateXMLElement();

            //保存XML文件
            xml.Save(this.filePath);
        }
        #endregion //保存XML文件





        #region 创建根节点对象
        /// <summary>
        /// 创建根节点对象
        /// </summary>
        /// <param name="xmlFilePath">Xml文件的相对路径</param>        
        private static XmlElement CreateRootElement(string xmlFilePath)
        {
            //定义变量,表示XML文件的绝对路径
            string filePath = "";

            //获取XML文件的绝对路径
            filePath = SysHelper.GetPhysicalPath(xmlFilePath);

            //创建XmlDocument对象
            XmlDocument xmlDocument = new XmlDocument();
            //加载XML文件
            xmlDocument.Load(filePath);

            //返回根节点
            return xmlDocument.DocumentElement;
        }
        #endregion




        #region 获取指定XPath表达式节点的值
                /// <summary>
                /// 获取指定XPath表达式节点的值
                /// </summary>

                public string GetValue(string xPath)
                {
                    //创建XML的根节点
                    CreateXMLElement();

                    //返回XPath节点的值
                    return element.SelectSingleNode(xPath).InnerText;
                }
                #endregion




        #region 获取指定XPath表达式节点的属性值
                /// <summary>
                /// 获取指定XPath表达式节点的属性值
                /// </summary>
                /// <param name="xPath">XPath表达式,
                /// <param name="attributeName">属性名</param>
                public string GetAttributeValue(string xPath, string attributeName)
                {
                    //创建XML的根节点
                    CreateXMLElement();

                    //返回XPath节点的属性值
                    return element.SelectSingleNode(xPath).Attributes[attributeName].Value;
                }
                #endregion



        #region 获取指定XPath表达式的节点对象
        /// <summary>
        /// 获取指定XPath表达式的节点对象
        /// </summary>        
        /// <param name="xPath">XPath表达式,
        public XmlNode GetNode(string xPath)
        {
            //创建XML的根节点
            CreateXMLElement();

            //返回XPath节点
            return element.SelectSingleNode(xPath);
        }
        #endregion

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值