当前位置: 移动技术网 > IT编程>开发语言>c# > c#对XML文档的创建与增删改查的示例代码

c#对XML文档的创建与增删改查的示例代码

2020年08月17日  | 移动技术网IT编程  | 我要评论
一、创建的第一种方式 //1、创建一个xml文档 xmldocument doc = new xmldocument(); //2、创建第一行描述信息 xmldeclaration dec

一、创建的第一种方式

//1、创建一个xml文档
   xmldocument doc = new xmldocument();
   //2、创建第一行描述信息
   xmldeclaration dec = doc.createxmldeclaration("1.0", "utf-8", null);
   //3、将创建的第一行描述信息添加到文档中
   doc.appendchild(dec);
   //4、给文档添加根节点
   xmlelement books = doc.createelement("books");
   doc.appendchild(books);
   xmlelement book = doc.createelement("book");
   books.appendchild(book);
   xmlelement name = doc.createelement("name");
   name.innertext = "水浒传";
   book.appendchild(name);
   xmlelement author = doc.createelement("author");
   author.innertext = "匿名";
   author.setattribute("name", "wjl");
   author.setattribute("count", "30");
   book.appendchild(author);
   doc.save("book.xml");
   console.writeline("保存成功!");
   console.readkey();

创建结果如下:

二、创建的第二种方式

 class program
   {
    static void main(string[] args)
    {
     list<student> list = new list<student>();
     list.add(new student(1, "wjl1", 22, "男"));
     list.add(new student(2, "wjl2", 21, "男"));
     list.add(new student(3, "wjl3", 22, "男"));
     list.add(new student(4, "wjl4", 24, "男"));
     xmldocument xmldoc = new xmldocument();
     xmldeclaration xmldec = xmldoc.createxmldeclaration("1.0", "utf-8", null);
     xmldoc.appendchild(xmldec);
     xmlelement person = xmldoc.createelement("person");
    xmldoc.appendchild(person);
     for (int i = 0; i < list.count; i++)
     {
      xmlelement stu = xmldoc.createelement("student");
      stu.setattribute("id", list[i].id.tostring());
      person.appendchild(stu);
      xmlelement name = xmldoc.createelement("name");
      xmlelement age = xmldoc.createelement("age");
      name.innertext = list[i].name;
      age.innertext = list[i].age.tostring();
      stu.appendchild(name);
      stu.appendchild(age);
    }
     xmldoc.save("student.xml");
    console.writeline("student.xml");
    console.readkey();
    }
  }
   class student
   {
   int id;
   string name;
   int age;
   string sex;
   public student(int id, string name, int age, string sex)
    {
     this.id = id;
     this.name = name;
     this.age = age;
     this.sex = sex;
   }
   public student()
   {
   }
   }

创建结果如下:

三、对xml文件的添加

xmldocument doc = new xmldocument();
   //首先判断文件是否存在,如果存在则追加否则在创建一个
   if (file.exists("student.xml"))
   {
    //加载
    doc.load("student.xml");
    //获取根节点,给根节点添加子节点
    xmlelement person = doc.documentelement;
    xmlelement student = doc.createelement("student");
    student.setattribute("id", "1");
    person.appendchild(student);
    xmlelement name = doc.createelement("name");
    xmlelement age = doc.createelement("age");
    name.innertext = "zjs";
    age.innertext = "41";
    student.appendchild(name);
    student.appendchild(age);
   }
   else {
   }
   doc.save("student.xml");
   console.writeline("student.xml 保存成功");

四、对xml文档的查询、修改、删除

方法1:

文档结构为:

if (file.exists("order.xml"))
   {
    doc.load("order.xml");
    // 获取根节点
    xmlelement orderelement = doc.documentelement;
    xmlnodelist orderchildr = orderelement.childnodes;
    foreach (xmlnode item in orderchildr)
    {
     console.writeline("节点名称:"+ item.name + "节点的 innertext :" + item.innertext);
    }
    xmlelement orderitem = orderelement["items"];
    xmlnodelist itemlist = orderitem.childnodes;
    foreach (xmlnode item in itemlist)
    {
     console.writeline(item.attributes["name"].value + " " + item.attributes["count"].value);
    }
 }
   else
   {
    console.writeline("文件不存在!");
   }
   console.readkey();
   // doc.save("student.xml");
   console.writeline("student.xml 保存成功");

方法2:

#region 使用xpath的方式来读取xml文件
   // 获取文档对象
   xmldocument doc = new xmldocument();
   doc.load("order.xml");
   //获取根节点
   xmlelement order = doc.documentelement;
   // 获取单个节点
   //xmlnode xn = order.selectsinglenode(@"/order/customername");
   xmlnode xn = order.selectsinglenode(@"/order/items/orderitem[@name='码表']");
   xn.attributes["count"].value = "20"; // 修改
   doc.save("order.xml");
   console.writeline(xn.attributes["count"].value);
   console.readkey();
   #endregion

删除元素指定的特性:

xn.attributes.removenameditem("count"); //删除元素指定的特性

删除子节点:

xmlnode xn = order.selectsinglenode(@"/order/items");
xmlnode xnchild = order.selectsinglenode(@"/order/items/orderitem[@name = '雨衣']");
xn.removechild(xnchild); //删除指定的子节点

删除当前所有子节点:

xn.removeall(); //删除当前节点的所有子节点 

删除当前节点的所有特性:

xnchild.attributes.removeall(); 

以上就是c#对xml文档的创建与增删改查的示例代码的详细内容,更多关于c#对xml文档的创建与增删改查的资料请关注移动技术网其它相关文章!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网