【黑马.net程序员】C#简单的操作Xml文件
来源:互联网 发布:如何禁止软件自动升级 编辑:程序博客网 时间:2024/05/17 04:19
------------黑马.net培训-----------、wp7培训、.net培训、期待与您交流!
最近学习了xml,感觉xml的优越性很强,适合很多操作平台,也恰好在学习C#,就顺便写了个c#操作xml文件的小程序,包含生成XML文件(增加数据、修改数据、删除等),若有不足之处,请大家指出。
主要有一个Student.cs包含(学生的一些个人信息:学号、姓名、性别、等信息)
2.xml操作类,包含生成xml文件、对数据添加、删除、修改等操作
主要有一个Student.cs包含(学生的一些个人信息:学号、姓名、性别、等信息)
using System;using System.Collections.Generic;using System.Text;namespace ParseXML{ [Serializable] /// <summary> /// 学员类 /// </summary> class Student { public Student() { studentList = new List<Student>(); } private string sID; private string name; private int age; private string sex; private string address; public string phone; /// <summary> /// 住址 /// </summary> public string Address { get { return address; } set { address = value; } } /// <summary> /// 性别 /// </summary> public string Sex { get { return sex; } set { sex = value; } } /// <summary> /// 年龄 /// </summary> public int Age { get { return age; } set { age = value; } } /// <summary> /// 姓名 /// </summary> public string Name { get { return name; } set { name = value; } } /// <summary> /// 学号 /// </summary> public string SID { get { return sID; } set { sID = value; } } public string Phone { get { return phone; } set { phone = value; } } private IList<Student> studentList = new List<Student>(); /// <summary> /// student /// </summary> public IList<Student> StudentList { get { return studentList; } set { studentList = value; } } }}
2.xml操作类,包含生成xml文件、对数据添加、删除、修改等操作
using System;using System.Collections.Generic;using System.Text;using System.Xml;using System.Windows.Forms;namespace ParseXML{ /// <summary> /// XML文件操作类 /// </summary> class XMLFunc { /// <summary> /// 创建XML文档 /// </summary> /// <param name="path"></param> public static void CreateXML(string path, Student stu) { XmlTextWriter xw = new XmlTextWriter(path, Encoding.UTF8); xw.WriteStartDocument(); xw.Formatting = Formatting.Indented; xw.WriteStartElement("Students"); xw.WriteStartElement("Student"); xw.WriteStartElement("SID"); xw.WriteStartAttribute("id"); xw.WriteValue(stu.SID.ToString()); xw.WriteEndAttribute(); xw.WriteValue(stu.SID.ToString()); xw.WriteEndElement(); xw.WriteStartElement("Name"); xw.WriteValue(stu.Name); xw.WriteEndElement(); xw.WriteStartElement("Age"); xw.WriteValue(stu.Age.ToString()); xw.WriteEndElement(); xw.WriteStartElement("Sex"); xw.WriteValue(stu.Sex); xw.WriteEndElement(); xw.WriteStartElement("Address"); xw.WriteValue(stu.Address); xw.WriteEndElement(); xw.WriteStartElement("Telphone"); xw.WriteValue(stu.phone); xw.WriteEndElement(); xw.WriteEndElement(); xw.WriteEndElement(); xw.WriteEndElement(); xw.Flush(); xw.Close(); MessageBox.Show(path + " 创建成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } /// <summary> /// 添加数据 /// </summary> /// <param name="path">XML文件路径</param> /// <param name="stu">学员</param> public static void Append(string path, Student stu) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); XmlNode xnl = xmlDoc.DocumentElement; for (int j = 0; j < xnl.ChildNodes.Count; j++) { if (xnl.ChildNodes[j].ChildNodes[0].Attributes["id"].Value == stu.SID.ToString()) { MessageBox.Show("已经包含了一个学号为:" + stu.SID + " 的学员!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } XmlNode node = xmlDoc.SelectSingleNode("Students"); XmlElement xes = xmlDoc.CreateElement("Student"); XmlElement xeid = xmlDoc.CreateElement("SID"); xeid.SetAttribute("id", stu.SID.ToString()); xeid.InnerText = stu.SID.ToString(); XmlElement xename = xmlDoc.CreateElement("Name");//添加各个节点 name,age,sex,address,telphone xename.InnerText = stu.Name; XmlElement xeage = xmlDoc.CreateElement("Age"); xeage.InnerText = stu.Age.ToString(); XmlElement xesex = xmlDoc.CreateElement("Sex"); xesex.InnerText = stu.Sex; XmlElement xeadd = xmlDoc.CreateElement("Address"); xeadd.InnerText = stu.Address; XmlElement xeapp = xmlDoc.CreateElement("telphone"); xeadd.InnerText = stu.phone; xes.AppendChild(xeid); xes.AppendChild(xename); xes.AppendChild(xeage); xes.AppendChild(xesex); xes.AppendChild(xeadd); xes.AppendChild(xeapp); node.AppendChild(xes); xmlDoc.Save(path); MessageBox.Show("追加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } /// <summary> /// 修改 /// </summary> /// <param name="path">XML文件路径</param> /// <param name="id">学号</param> /// <param name="stu">学员对象</param> public static void Edit(string path, string id, Student stu) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); XmlNode xnl = xmlDoc.DocumentElement; XmlNode node = null; for (int j = 0; j < xnl.ChildNodes.Count; j++) { if (xnl.ChildNodes[j].ChildNodes[0].Attributes["id"].Value == id) { node = xnl.ChildNodes[j]; } } if (node == null) return; node.ChildNodes[1].InnerText = stu.Name; node.ChildNodes[2].InnerText = stu.Age.ToString(); node.ChildNodes[3].InnerText = stu.Sex; node.ChildNodes[4].InnerText = stu.Address; node.ChildNodes[5].InnerText = stu.phone; xmlDoc.Save(path); MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } /// <summary> /// 删除操作 /// </summary> /// <param name="path">XML路径</param> /// <param name="id">删除的ID</param> public static void Delete(string path, string id) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path); XmlNode xnl = xmlDoc.DocumentElement; XmlNode node = null; for (int j = 0; j < xnl.ChildNodes.Count; j++) { if (xnl.ChildNodes[j].ChildNodes[0].Attributes["id"].Value == id) { node = xnl.ChildNodes[j]; } } if (node == null) return; node.ParentNode.RemoveChild(node); xmlDoc.Save(path); MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } /// <summary> /// 加载信息 /// </summary> /// <param name="path"></param> /// <returns></returns> public static IList<Student> LoadXML(string path) { IList<Student> stuList = new List<Student>();//创建一个Student类的集合 XmlDocument xmlDoc = new XmlDocument();//创建一个XmlDocument类的实例 xmlDoc.Load(path); XmlNode node = xmlDoc.DocumentElement; for (int i = 0; i < node.ChildNodes.Count; i++) { XmlNode xnl = node.ChildNodes[i]; Student stu = new Student(); stu.SID = xnl["SID"].InnerText; stu.Name = xnl["Name"].InnerText; stu.Age = Convert.ToInt32(xnl["Age"].InnerText); stu.Sex = xnl["Sex"].InnerText; stu.Address = xnl["Address"].InnerText; } } }}
------------黑马.net培训-----------、wp7培训、.net培训、期待与您交流!
- 【黑马.net程序员】C#简单的操作Xml文件
- 黑马程序员--C#中xml简单操作
- 黑马程序员-------C#中简单文件操作
- C#对XML文件的简单操作
- C# xml 文件的简单操作
- C# .Net操作XML文件
- 黑马程序员-C#学习-文件操作
- asp.net中对XML文件的简单操作
- asp.net对XML文件的一些简单操作
- C# --XML文件的操作
- 简单的XML文件操作
- ASP.NET和C#中对XML的操作,以及简单的xml与xsl !
- 黑马程序员------HTML中的简单的操作
- 黑马程序员-javaBean的简单内省操作
- 黑马程序员之C#学习笔记: xml文件读取
- 黑马程序员 文件操作
- 黑马程序员-文件操作
- 简单的XML操作:XML文件创建
- 网卡禁用启用,usb监测,禁用启用
- 使用json-lib实现的JSON产生器(Java版本)
- 成员资格管理
- RCU 机制[转载]
- qemu-kvm 准备知识
- 【黑马.net程序员】C#简单的操作Xml文件
- 利用ASP.NET设计FTP文件上传
- HDFS集群的启动(5)——NameNode任务线程之FSNamesystem$HeartbeatMonitor
- 写技术博客的注意事项
- CPU卡使用的简单情况举例
- jQuery学习笔记(一)
- 【六】 进程间通信——(PIPE)无名管道
- Android 开发人员必须掌握的 10 个开发工具
- 在ubuntu上安装google输入法