关于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()); } } }