[转贴]C#的XML数使用示例(很久以前转的,忘记出处了,做个备份

原创 2007年10月04日 17:09:00
1、往<bookstore>节点中插入一个<book>节点:
   XmlDocument xmlDoc=new XmlDocument();
   xmlDoc.Load("bookstore.xml");
   XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
   XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点
   xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
   xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性
   XmlElement xesub1=xmlDoc.CreateElement("title");
   xesub1.InnerText="CS从入门到精通";//设置文本节点
   xe1.AppendChild(xesub1);//添加到<book>节点中
   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);//添加到<bookstore>节点中
   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李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
    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、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
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);//显示子节点点文本
    }
   }  

相关文章推荐

突然在电脑上发现自己很久以前写的《科学美学与审美创造》通识课的论文,于是发上来了,^_^

代码之美 摘要:作为一名刚入门不久的程序员,对代码有太多的不解和困惑,但也有太多的感触。代码之美,唯有心知;代码之美,源于简单;代码之美,无限可能。代码是程序员的独奏...

很久以前写的一个java模拟扑克牌洗牌发牌的小程序,学的知识少写的比较麻烦,不过也放上来吧

package org.phz.poke; import java.util.ArrayList; import java.util.Collections; import java.util.L...

接着很久以前的贪吃蛇

因为前几天有些事情,所以那个贪吃蛇还有部分没有完成,只做到了蛇能够移动的地步。以前的代码所以今天就让蛇能够吃食物,并且蛇变长。 要实现这个功能主要做的就是判断蛇头的位置以及食物的位置。 然后就是在每次...

很久很久以前

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 再后来,他们又做了一些可以处理这些字节的机器,机器...

mini2440裸机音乐播放器(很久以前的笔记)

【这是好久以前写的,有点乱,没时间整理,当做记录用的。】 项目目的:通过IIS,触摸屏,LCD模块实现音乐播放器功能(按钮上一首、下一首、播放、暂停的音频控制功能,并实现播放歌曲时显示相应的歌曲图...

很久以前某位大仙对petri网的总结

2006年03月14日 计算模型的统一分析 计算模型的统一分析     人类所有的计算模型都包括如下四个要素:          1)输入集合或者输入变量(I);        ...
  • oney139
  • oney139
  • 2014年09月07日 16:00
  • 22169

旋转菜单(很久以前借鉴的)

那么下面开始吧~          首先,将整个菜单动画分解开来。 1.       一级菜单按钮的旋转动画2个,十字和叉叉状态的转换。 2.       二级菜单按钮的平移动画2个...
  • wqw272
  • wqw272
  • 2013年02月16日 09:59
  • 178

很久以前的图书管理系统

  • 2011年02月22日 21:51
  • 805KB
  • 下载

SUSE下telnet的简单配法,转贴 -- 记录一下,以便备份

如何在SuSE Linux下安装配置telnet服务1.       检测SuSE的Telnet服务是否已安装(默认安装时是不安装Telent-Server的。)# chkconfig –list在列...
  • kay5804
  • kay5804
  • 2011年01月26日 09:59
  • 860
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转贴]C#的XML数使用示例(很久以前转的,忘记出处了,做个备份
举报原因:
原因补充:

(最多只允许输入30个字)