C#学习笔记之XML工具类

       关于XML文件,我有一篇文章是专门写用XML文件做配置文件的,当时我直接把代码写在了form窗口的类文件里,没有将代码分离。在这里我直接将代码分离开来做成了一个工具类。工具类的思想和数据库帮助类一样,把代码从逻辑控制类里分离开来,方便重复使用。

   

 /// <summary>
    /// XML工具类
    /// </summary>
   public class XmlToolClass
    {
       private static string path = Application.StartupPath + @"dataconfig.xml";
        //Application.StartupPath获取该应用程序的启动地址不包含文件名,所以绝对路径要加上对应文件名
        //执行写入操作时,不存在文件则自动创建

        /// <summary>
        /// 从xml文件中获取数据
        /// </summary>
        /// <param name="nodeName">节点名称</param>
        /// <returns>返回xml文件中节点对应的数据</returns>
        public static string GetLastTimeSuccessfulLoginAccount(string nodeName)
        {
            string LastTimeSuccessfulLoginAccount = "";
            XmlDocument doc = new XmlDocument();//实例化XmlDocument 用于加载xml文件

            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;//忽略文档里面的注释
            try
            {
                XmlReader reader = XmlReader.Create(path, settings);//XmlReader作用是xml读取器, 实例化XmlReader 读取xml文件数据
                doc.Load(reader);//把读到的数据加载到doc
                // 得到根节点Data
                XmlNode xm = doc.SelectSingleNode("Data");
                XmlNode configuration = xm.ChildNodes[0];
                XmlElement cftElemen = (XmlElement)configuration;
                LastTimeSuccessfulLoginAccount = cftElemen.GetAttribute(nodeName).ToString();//获取XML文件记录的账号

                reader.Close();

            }
            catch
            {

            }
            return LastTimeSuccessfulLoginAccount;
        }

        /// <summary>
        /// 登录成功后将数据写入xml文件
        /// </summary>
        /// <param name="nodeName">节点名称</param>
        /// <param name="data">数据</param>
        public static  void SetSuccessfulLoginAccount(string nodeName, string data)
        {
            XmlDocument xmlDoc = new XmlDocument();
            //加入XML的声明段落,Save方法不再xml上写出独立属性
            xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
            try
            {

                //加入根元素
                XmlElement root = xmlDoc.CreateElement("Data");
                xmlDoc.AppendChild(root);

                XmlElement memberA = xmlDoc.CreateElement("MEMBER");
                memberA.SetAttribute(nodeName, data);


                root.AppendChild(memberA);

                xmlDoc.Save(path);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

    }
原文地址:https://www.cnblogs.com/xwzLoveCshap/p/11540916.html