一、创建的第一种方式
//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文档的创建与增删改查的资料请关注其它相关文章!
内涵的射手