椰子林软件教育基地

做一个诚实的人,你也一样。

李赞红ID:lizanhong
117782次访问,排名699好友0人,关注者1
lizanhong的文章
原创 40 篇
翻译 1 篇
转载 10 篇
评论 288 篇
椰子林的公告

    欢迎访问椰子林的Blog,本网站文章保证原创


联系方式:
网名:椰子林
QQ:2878685**
Email:lifenote(AT)21cn.com



最近评论
niuchn:请教一下,生成的WSDL文件在那能找到。如果需要修改WSDL文件。
jefferykk:好文章
ZqqL:感谢 楼主! 只是示例中
[ToolboxBitmap(typeof(NumberEditor),"PowerAsp.NET.Controls.NumberEditor.bmp")]
非常不懂,请楼主以后能在其他示例中详释
grfgfdsgd:抄人家的,无聊
dsp_1128:非常好,谢谢!
文章分类
收藏
相册
BBS
截图
我的生活照
友情链接
dotnetBlog
DotNet新网
Loveyuki 's BLOG
MSDN中文
中国DotNet俱乐部
椰子林DotNet的天空
海边看星(IT大杂烩)
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 在C#中操作XML 收藏

新一篇: 让图片无迹可寻 | 

我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。
 
已知有一个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、往<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);//显示子节点点文本
    }
   }

发表于 @ 2004年06月23日 19:28:00|评论(loading...)|编辑

新一篇: 让图片无迹可寻 | 

评论

#zr1982930 发表于2004-11-01 14:26:00  IP:
TrackBack来自《在C#中操作XML 》

Ping Back来自:blog.csdn.net
#圆点 发表于2005-01-04 00:03:00  IP:
TrackBack来自《在C#中操作XML 》

Ping Back来自:www.donews.net
#等待 发表于2005-01-11 10:39:00  IP:
TrackBack来自《在C#中操作XML 》

Ping Back来自:blog.csdn.net
#等待 发表于2005-01-11 10:39:00  IP:
TrackBack来自《在C#中操作XML 》

Ping Back来自:blog.csdn.net
#陈安宝 0202  发表于2005-01-31 14:18:00  IP:
TrackBack来自《在C#中操作XML 》

Ping Back来自:blog.csdn.net
#LoveCherry 发表于2005-02-25 08:21:00  IP:
TrackBack来自《c#中操作 xml 》

Ping Back来自:blog.csdn.net
#Beginner 发表于2004-06-24 05:02:00  IP: 24.156.29.*
简短明了,不错。
#hbzxf(阿好) 发表于2004-06-26 12:16:00  IP: 221.192.52.*
VeryGood!
#guest 发表于2004-07-05 17:37:00  IP: 221.224.38.*
不错
#漫漫 发表于2004-08-13 10:56:00  IP: 218.0.210.*
清楚,谢谢
#漫漫 发表于2004-08-13 10:56:00  IP: 218.0.210.*
请问在XML中如何自动编号?
#风雨 发表于2004-08-19 10:53:00  IP: 221.12.10.*
多谢,不错的总结。
#japan 发表于2004-09-01 16:20:00  IP: 219.146.41.*
ありあど
#nude-picture 发表于2004-09-02 20:34:00  IP: 66.98.226.*
<a href=http://gerotic-sweengers-c.da.ru>nude picture</a>
#thumbnail-tgp 发表于2004-09-20 23:12:00  IP: 66.98.226.*
<a href=http://69-jerk-sex-tgp.da.ru>tgp thumbnail</a>
#二米 发表于2004-11-07 14:01:00  IP: 211.68.5.*
感谢!我现在正需要这方面资料!!
#g 发表于2004-12-10 11:02:00  IP: 211.91.102.*
f
#g 发表于2004-12-10 11:02:00  IP: 211.91.102.*
f
#kk 发表于2004-12-10 10:15:00  IP: 61.144.207.*
good
#hello 发表于2004-12-21 16:51:00  IP: 61.51.124.*
请问:修改<title>="CS从入门到精通" 的节点的文字<title>="Update_CS从入门到精通",该怎样改?
#DCD 发表于2005-01-21 22:33:00  IP: 60.26.237.*
很不错的教程,谢谢!
#风之浪漫 发表于2005-05-16 15:14:00  IP: 221.224.52.*
找了好长时间,谢谢。。。。。。
#deyangwangyu 发表于2005-06-10 20:48:00  IP: 61.186.252.*
谢谢
#Peter 发表于2006-03-21 11:44:00  IP: 218.66.109.*
good,学习了
#ssl 发表于2006-06-19 12:32:00  IP: 222.58.129.*
非常好,不错
#grfgfdsgd 发表于2007-08-27 13:26:42  IP: 123.113.142.*
抄人家的,无聊
#jefferykk 发表于2007-11-22 16:02:20  IP: 58.20.43.*
好文章
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 椰子林