C#代码操作XML进行增、删、改操作

作为一个小型的数据存储传递的工具——XML,大家肯定也不陌生,今天就关于XML的一些简单操作做些总结。
这些都是在控制台进行操作的·····

1.创建XML
1)创建普通XML

static void Main(string[] args)
 {
  //通过代码来创建XML文档
  //1、引用命名空间
  //2、创建XML文档对象
  XmlDocument doc = new XmlDocument();
  //3、创建第一个行描述信息,并且添加到doc文档中
  XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
  doc.AppendChild(dec);
  //4、创建根节点
  XmlElement books = doc.CreateElement("Books");
  //将根节点添加到文档中
  doc.AppendChild(books);

  //5、给根节点Books创建子节点
  XmlElement book1 = doc.CreateElement("Book");
  //将book添加到根节点
  books.AppendChild(book1);
  //6、给Book1添加子节点
  XmlElement name1 = doc.CreateElement("Name");
  name1.InnerText = "三国演义";
  book1.AppendChild(name1);

  XmlElement price1 = doc.CreateElement("Price");
  price1.InnerText = "70";
  book1.AppendChild(price1);

  XmlElement des1 = doc.CreateElement("Des");
  des1.InnerText = "好看";
  book1.AppendChild(des1);

  XmlElement book2 = doc.CreateElement("Book");
  books.AppendChild(book2);

  XmlElement name2 = doc.CreateElement("Name");
  name2.InnerText = "西游记";
  book2.AppendChild(name2);

  XmlElement price2= doc.CreateElement("Price");
  price2.InnerText = "80";
  book2.AppendChild(price2);

  XmlElement des2 = doc.CreateElement("Des");
  des2.InnerText = "还不错";
  book2.AppendChild(des2);

  doc.Save("Books.xml");
  Console.WriteLine("保存成功");
  Console.ReadKey();
 }

根据代码写的,然后运行,就会得到我们想要的XML文档:

2)创建带属性的XML

static void Main(string[] args)
 {
  XmlDocument doc = new XmlDocument();
  XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8","yes");
  doc.AppendChild(dec);

  XmlElement order = doc.CreateElement("Order");
  doc.AppendChild(order);

  XmlElement customerName = doc.CreateElement("CustomerName");
  customerName.InnerText = "张三";
  order.AppendChild(customerName);

  XmlElement customerNumber = doc.CreateElement("CustomerNumber");
  customerNumber.InnerText = "1010101";
  order.AppendChild(customerNumber);

  XmlElement items = doc.CreateElement("Items");
  order.AppendChild(items);

  XmlElement orderItem1 = doc.CreateElement("OrderItem");
  //给节点添加属性
  orderItem1.SetAttribute("Name", "单反");
  orderItem1.SetAttribute("Count", "1120");
  items.AppendChild(orderItem1);

  XmlElement orderItem2 = doc.CreateElement("OrderItem");
  //给节点添加属性
  orderItem2.SetAttribute("Name", "书");
  orderItem2.SetAttribute("Count", "30");
  items.AppendChild(orderItem2);

  XmlElement orderItem3 = doc.CreateElement("OrderItem");
  //给节点添加属性
  orderItem3.SetAttribute("Name", "手机");
  orderItem3.SetAttribute("Count", "2000");
  items.AppendChild(orderItem3);

  doc.Save("Order.xml");
  Console.WriteLine("保存成功");
  Console.ReadKey();

 }

根据代码写的,然后运行,就会得到我们想要的XML文档:

2.追加XML

 static void Main(string[] args)
 {
  //追加XML文档
  XmlDocument doc = new XmlDocument();
  XmlElement books;
  if (File.Exists("Books.xml"))
  {
  //如果文件存在 加载XML
  doc.Load("Books.xml");
  //获得文件的根节点
  books = doc.DocumentElement;
  }
  else
  {
  //如果文件不存在
  //创建第一行
  XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
  doc.AppendChild(dec);
  //创建跟节点
  books = doc.CreateElement("Books");
  doc.AppendChild(books);
  }
  //5、给根节点Books创建子节点
  XmlElement book1 = doc.CreateElement("Book");
  //将book添加到根节点
  books.AppendChild(book1);

  //6、给Book1添加子节点
  XmlElement name1 = doc.CreateElement("Name");
  name1.InnerText = "c#开发大全";
  book1.AppendChild(name1);

  XmlElement price1 = doc.CreateElement("Price");
  price1.InnerText = "110";
  book1.AppendChild(price1);

  XmlElement des1 = doc.CreateElement("Des");
  des1.InnerText = "看不懂";
  book1.AppendChild(des1);

  doc.Save("Books.xml");
  Console.WriteLine("保存成功");
  Console.ReadKey();

 }

根据代码写的,然后运行,就会得到我们想要的XML文档:

3.读取XML
1)读取普通XML

static void Main(string[] args)
 {
  XmlDocument doc = new XmlDocument();
  //加载要读取的XML
  doc.Load("Books.xml");

  //获得根节点
  XmlElement books = doc.DocumentElement;

  //获得子节点 返回节点的集合
  XmlNodeList xnl = books.ChildNodes;

  foreach (XmlNode item in xnl)
  {
  Console.WriteLine(item.InnerText);
  }
  Console.ReadKey();
}

根据代码写的,然后运行,就会得到读取的XML结果:

2)读取带属性的XML

 static void Main(string[] args)
 {
  //读取带属性的XML文档

  XmlDocument doc = new XmlDocument();
  doc.Load("Order.xml");
  XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem");
  foreach (XmlNode node in xnl)
  {
  Console.WriteLine(node.Attributes["Name"].Value);
  Console.WriteLine(node.Attributes["Count"].Value);
  }
  Console.ReadKey();
}

根据代码写的,然后运行,就会得到读取的XML结果:

4.修改属性的值

static void Main(string[] args)
 {
  //改变属性的值
  XmlDocument doc = new XmlDocument();
  doc.Load("Order.xml");
  XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='单反']");
  xn.Attributes["Count"].Value = "2000";
  xn.Attributes["Name"].Value = "电脑";
  doc.Save("Order.xml");
  Console.WriteLine("保存成功");

  Console.ReadKey();
 }

根据代码写的,然后运行,就会得到修改后的XML结果:

5.删除XML节点

 static void Main(string[] args)
 {
  XmlDocument doc = new XmlDocument();
  doc.Load("Order.xml");
  XmlNode xn = doc.SelectSingleNode("/Order/Items");
  xn.RemoveAll();
  doc.Save("Order.xml");
  Console.WriteLine("删除成功");
  Console.ReadKey();
 }

根据代码写的,然后运行,就会得到修删除后的XML结果:

至此:XML简单的增删改操作就结束了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C# 写入XML文档三种方法详细介绍

    我在以前的博客中介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作.它们分别使用了XmlDocument类和XDocument类.在本文中,我再介绍一个类,XmlTextWriter.我们分别用这三个类将同样的xml内容写入文档,看一看哪种写法最直观.简便. 我们要写入的XML文档内容为 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <Co

  • C#对XML文件的各种操作实现方法

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Language,标准通用标记语言).它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule).任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠

  • C#中XmlTextWriter读写xml文件详细介绍

    XmlTextWriter类允许你将XML写到一个文件中去.这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML.为了使用这个类,你必须首先创建一个新的XmlTextWriter对象,然后你可以将XML片断加入到这个对象中.这个类中包含了不少的方法用于将各种类型的XML元素添加到XML文件中,下表给出了这些方法的名字和描述情况: 方法 描述 WriteStartDocument 书写版本为"1.0"的 XML 声明 WriteEndDocument 关闭任何打开的元

  • C# winfrom实现读取修改xml

    本文示例为大家分享了winfrom实现读取修改xml的具体代码,供大家参考,具体内容如下 在winfrom窗体中放一个文本框,2个按钮,一个panle,如下图 form.cs文件中的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

  • C# WinForm开发中使用XML配置文件实例

    本文介绍在使用C#开发WinForm程序时,如何使用自定义的XML配置文件.虽然也可以使用app.config,但命名方面很别扭. 我们在使用C#开发软件程序时,经常需要使用配置文件.虽然说Visual Studio里面也自带了app.config这个种配置文件,但用过的朋友都知道,在编译之后,这个app.config的名称会变成app.程序文件名.config,这多别扭啊!我们还是来自己定义一个配置文件吧. 配置文件就是用来保存一些数据的,那用xml再合适不过.那本文就介绍如何使用XML来作为

  • C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

    已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点: 复制代码 代码如下: XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找 XmlElement xe1=xmlDoc.CreateElement(

  • 简介C#读取XML的两种方式

    XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式.用于Internet的数据传输,我想,这是XML对于我们这些程序员最诱人的地方! 我们今天的主题不是论述XML的好处,而是讨论在C#中如何使用XML.下面我们来了解一下使用程序访问XML的一些基础理论知识. 访问的两种模型: 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,

  • C#对象与XMl文件之间的相互转换

    C#提供三种序列化方式,分别为:1.是使用BinaryFormatter进行串行化: 2.使用SoapFormatter进行串行化: 3.使用XmlSerializer进行串行化.其中对于BinaryFormatter的方式需要实现ISerializable接口,而XmlSeriializ不需要实现对应的接口,可以直接序列化.在这里面我们主要采用XMlSerialize来实现对应的序列化操作进而实现对应的对象和XMl文件之间的转换关系. 在通过序列化实现对应的转换关系操作的功能时,我首先创建了D

  • C# 操作XML文档 使用XmlDocument类方法

    W3C制定了XML DOM标准.很多编程语言中多提供了支持W3C XML DOM标准的API.我在之前的文章中介绍过如何使用Javascript对XML文档进行加载与查询.在本文中,我来介绍一下.Net中的XmlDocument类.它支持并扩展了W3C XML DOM标准.它将整个XML文档都先装载进内存中,然后再对XML文档进行操作,所以如果XML文档内容过大,不建议使用XmlDocument类,因为会消耗过多内存.对于很大的XML文档,可以使用XmlReader类来读取.因为XmlReade

  • C#操作读取、写入XML文档的实用方法

    本文给大家分享一下C#操作(读取.写入)XML文档的实用方法,这种方法主要是对比较规范的XML文档进行操作,因为它(XML文档)和类对象是严格对应的,否则在反序列或序列化的时候会出现错误.其他的不用多说,直接看示例代码吧: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using

随机推荐