点击这里给我发消息 点击这里给我发消息

C#中对 XML节点进行添加,删除

添加时间:2014-7-23
    相关阅读: C#

已知有一个XML文件(bookstore.xml)如下:

  <?xml version="1.0" encoding="gb2312"?>

  <bookstore>

  <book genre="fantasy" ISBN="2-3631-4">

  <title>Oberon's Legacy</title>

  <author>Corets, Eva</author>

  <price>5.95</price>

  </book>

  </bookstore>

  1、往节点中插入一个节点:

  XmlDocument xmlDoc=new XmlDocument();

  xmlDoc.Load("bookstore.xml");

  XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找

  XmlElement xe1=xmlDoc.CreateElement("book");//创建一个节点

  xe1.SetAttribute("genre","李赞红");//设置该节点genre属性

  xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性

  XmlElement xesub1=xmlDoc.CreateElement("title");

  xesub1.InnerText="CS从入门到精通";//设置文本节点

  xe1.AppendChild(xesub1);//添加到节点中

  XmlElement xesub2=xmlDoc.CreateElement("author");

  xesub2.InnerText="候捷";

  xe1.AppendChild(xesub2);

  XmlElement xesub3=xmlDoc.CreateElement("price");

  xesub3.InnerText="58.3";

  xe1.AppendChild(xesub3);

  root.AppendChild(xe1);//添加到节点中

  xmlDoc.Save("bookstore.xml");

  //===============================================

  结果为:

  <?xml version="1.0" encoding="gb2312"?>

  <bookstore>

  <book genre="fantasy" ISBN="2-3631-4">

  <title>Oberon's Legacy</title>

  <author>Corets, Eva</author>

  <price>5.95</price>

  </book>

  <book genre="李赞红" ISBN="2-3631-4">

  <title>CS从入门到精通</title>

  <author>候捷</author>

  <price>58.3</price>

  </book>

  </bookstore>

  2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点的文本修改为“亚胜”。

  XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore")。ChildNodes;//获取bookstore节点的所有子节点

  foreach(XmlNode xn in nodeList)//遍历所有子节点

  {

  XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型

  if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”

  {

  xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”

  XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点

  foreach(XmlNode xn1 in nls)//遍历

  {

  XmlElement xe2=(XmlElement)xn1;//转换类型

  if(xe2.Name=="author")//如果找到

  {

  xe2.InnerText="亚胜";//则修改

  break;//找到退出来就可以了

  }

  }

  break;

  }

  }

  xmlDoc.Save("bookstore.xml");//保存。

  //==================================================

  最后结果为:

  <?xml version="1.0" encoding="gb2312"?>

  <bookstore>

  <book genre="fantasy" ISBN="2-3631-4">

  <title>Oberon's Legacy</title>

  <author>Corets, Eva</author>

  <price>5.95</price>

  </book>

  <book genre="update李赞红" ISBN="2-3631-4">

  <title>CS从入门到精通</title>

  <author>亚胜</author>

  <price>58.3</price>

  </book>

  </bookstore>

  3、删除 节点的genre属性,删除 节点。

  XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore")。ChildNodes;

  foreach(XmlNode xn in xnl)

  {

  XmlElement xe=(XmlElement)xn;

  if(xe.GetAttribute("genre")=="fantasy")

  {

  xe.RemoveAttribute("genre");//删除genre属性

  }

  else if(xe.GetAttribute("genre")=="update李赞红")

  {

  xe.RemoveAll();//删除该节点的全部内容

  }

  }

  xmlDoc.Save("bookstore.xml");

  //===========================================

  最后结果为:

  <?xml version="1.0" encoding="gb2312"?>

  <bookstore>

  <book ISBN="2-3631-4">

  <title>Oberon's Legacy</title>

  <author>Corets, Eva</author>

  <price>5.95</price>

  </book>

  <book>

  </book>

  </bookstore>

  4、显示所有数据。

  XmlNode xn=xmlDoc.SelectSingleNode("bookstore");

  XmlNodeList xnl=xn.ChildNodes;

  foreach(XmlNode xnf in xnl)

  {

  XmlElement xe=(XmlElement)xnf;

  Console.WriteLine(xe.GetAttribute("genre"));//显示属性值

  Console.WriteLine(xe.GetAttribute("ISBN"));

  XmlNodeList xnf1=xe.ChildNodes;

  foreach(XmlNode xn2 in xnf1)

  {

  Console.WriteLine(xn2.InnerText);//显示子节点点文本

  }

  }

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册