作为一个小型的数据存储传递的工具——xml,大家肯定也不陌生,今天就关于xml的一些简单操作做些总结。
这些都是在控制台进行操作的·····
1.创建xml
1)创建普通xml
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
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
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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.修改属性的值
?| 1 2 3 4 5 6 7 8 9 10 11 12 13 |
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节点
?| 1 2 3 4 5 6 7 8 9 10 |
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简单的增删改操作就结束了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。








发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。