跳到正文

【C#进阶】C#实现对XML文件的创建和基本的增删改查操作

1.XML文件的创建 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace ConsoleApp1 { class Xml文件的使用 { static void Main(string args) { //DOMC操作XML文件【文档对象模型】 //1.创建一个XML文档对象 XmlDocument doc = new XmlDocument(); //2.创建第一行的描述信息 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); //3.将创建的第一行数据添加到文档中 doc.AppendChild(dec); //4.给文档添加根节点 XmlElement book = doc.CreateElement("Books"); //5.将根节点添加给文档对象 doc.AppendChild(book); //6.给根节点添加子节点 XmlElement book1 = doc.CreateElement("Book"); //将book1添加到根节点book book.AppendChild(book1); //7.给book1添加子节点 XmlElement bookName1 = doc.CreateElement("BookName"); //8.设置标签中的描述文本信息 bookName1.InnerText = "水浒传"; book1.AppendChild(bookName1); XmlElement author1 = doc.CreateElement("Author"); author1.InnerText = "秀秀"; book1.AppendChild(author1); XmlElement price1 = doc.CreateElement("Price"); price1.InnerText = "100MB"; book1.AppendChild(price1); XmlElement des1 = doc.CreateElement("Des"); des1.InnerText = "太好看了!!!"; book1.AppendChild(des1); doc.Save("Book.xml"); Console.WriteLine("保存成功!"); } } } 2.对XML文件实现基本的增删改查 //对现有的XMl文件实现增删改查 XmlDocument docc = new XmlDocument(); //首先判断一个Xml文件是否存在, 如果存在,则追加; 否则就创建一个 if (File.Exists("Person.xml")) { //追加操作 //1.加载文件 docc.Load("Person.xml"); //2.获得根节点 XmlElement root = docc.DocumentElement; //3.添加一个新的节点 XmlElement student = docc.CreateElement("Student"); root.AppendChild(student); XmlElement name = docc.CreateElement("Name"); name.InnerXml = "马克思主义乖巧"; XmlElement age = docc.CreateElement("Age"); age.InnerXml = "22"; XmlElement gender = docc.CreateElement("Gender"); gender.InnerXml = "女"; student.AppendChild(name); student.AppendChild(age); student.AppendChild(gender); } else { //创建一个新的 XmlDeclaration dec = docc.CreateXmlDeclaration("1.0", "utf-8", null); docc.AppendChild(dec); //创建根节点 XmlElement root = docc.CreateElement("Student"); docc.AppendChild(root); //3.添加一个新的节点 XmlElement student = docc.CreateElement("Student"); root.AppendChild(student); XmlElement name = docc.CreateElement("Name"); name.InnerXml = "马克思主义乖巧"; XmlElement age = docc.CreateElement("Age"); age.InnerXml = "22"; XmlElement gender = docc.CreateElement("Gender"); gender.InnerXml = "女"; student.AppendChild(name); student.AppendChild(age); student.AppendChild(gender); } //记得保存 docc.Save("Person.xml"); Console.WriteLine("文件保存成功!"); //查看Xml文件 //1.获得文档的根 XmlElement book = docc.DocumentElement; //2.获得下面的所有子节点 XmlNodeList xnl = book.ChildNodes; foreach (XmlNode item in xnl) { Console.WriteLine(item.InnerText); } //获得Student的节点 Console.WriteLine("获得Student的节点:"); XmlElement items = book; //获得子节点信息 XmlNodeList xnl2 = items.ChildNodes; foreach (XmlNode item in xnl2) { Console.WriteLine(item.InnerXml); if (item.InnerXml == "22") { item.InnerXml = "66"; } docc.Save("Person.xml"); } } using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml; namespace ConsoleApp1 { class XML文件的增删改查 { static void Main(string args) { //创建一个XMl文档 XmlDocument doc = new XmlDocument(); //Xml文件的加载 if (File.Exists("Order.xml")) { //加载文件 doc.Load("https://laod.cn/sitemap.xml"); //开始修改(拿到了根节点) XmlElement root = doc.DocumentElement; //获得子节点 XmlNodeList nl = doc.ChildNodes; //先获得Items项 XmlElement items = root; foreach (XmlNode item in items) { //Console.WriteLine(item.InnerText); Console.Write(item.Attributes.Value+" "); Console.WriteLine(item.Attributes.Value); if (item.Attributes.Value == "马克思") { item.Attributes.Value = "马克思主义乖巧"; item.Attributes.Value = "1008611"; } } doc.Save("Order.xml"); } else { //新建一个 } } } } 3.XPATH方式来实现增删改查 //使用Xpath的方式来读取Xml文件 XmlDocument doc = new XmlDocument(); doc.Load("Order.xml"); //获得根节点 XmlElement order = doc.DocumentElement; //查 XmlNode xn = order.SelectSingleNode("/Order/OrderNumber"); XmlNode xnn = order.SelectSingleNode("/Order/Items/OrderItem"); Console.WriteLine(xn.InnerXml); Console.WriteLine(xnn.Attributes.Value); //修改(增加) xnn.Attributes.Value = "我是一个新的中国人!"; Console.WriteLine(xnn.Attributes.Value); //删除 Console.WriteLine("删除"); //doc.RemoveAll(); //error:根节点不能删除 //移除根节点下面的所有子节点 XmlElement ord = doc.DocumentElement; //删除指定节点 XmlNode xnnn = order.SelectSingleNode("/Order/Items/OrderItem"); //获得Items节点 XmlNode items = order;//order.SelectSingleNode("/Order/Items"); //移除当前节点的子节点 items.RemoveChild(xnnn); //删除一个指定节点的属性 //XmlNode orderItem = order.SelectSingleNode("/Order/Items/OrderItem"); xnnn = order.SelectSingleNode("/Order/Items/OrderItem"); xnn.Attributes.RemoveNamedItem("Count"); // 删除xnn节点下面的Count属性 //ord.RemoveAll(); //删除所有的 doc.Save("Order.xml");

评论

填写昵称与邮箱即可评论,无需登录。

推荐阅读