http://www.blogjava.net/ebecket
返还网
前端工程师-Becket
BlogJava
首页
新随笔
联系
聚合
管理
随笔-140 评论-11 文章-131 trackbacks-0
C#中操作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
"
);
//
xmlDoc.LoadXml("<!--l version=\"1.0\" encoding=\"gb2312\--><BOOKSTORE></BOOKSTORE>");
XmlNode root
=
xmlDoc.SelectSingleNode(
"
bookstore
"
);
//
查找<BOOKSTORE></BOOKSTORE>
XmlElement xe1
=
xmlDoc.CreateElement(
"
book
"
);
//
创建一个<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></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></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);
//
显示子节点点文本
}
}
参考资料来源:
http://www.yongfa365.com/item/CZhongCaoZuoXMLWenJianDuXieGaiShanQuanJieChuGenQiTaYuYanCaoZuoXMLChaBuDuoYiYang.html
posted on 2010-03-22 11:18
becket_zheng
阅读(353)
评论(0)
编辑
收藏
所属分类:
网页web前端技术
、
C#
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
HTML5+CSS3 W3C规范<<中文版>>参考手册(提供下载)
IE6/IE7/FF的CSS hack 浏览器兼容总
Web 调试代理软件Fiddler 一个http调试代理,能够记录所有的你电脑和互联网之间的http通讯
使用js获取QueryString
JSON in .Net
使用Google CDN服务提供的jQuery库
Google与Microsoft为jQuery,Prototype,MooTools等类库提供CDN服务
C#中操作XML文件(读写改删全接触)-全了!
非常有用的JS事件功能(转)
无阻塞下载脚本
<
2010年3月
>
日
一
二
三
四
五
六
28
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
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
(138)
C#(33)
数据库相关(3)
生活(24)
福建邮科
网络/服务器(7)
网页web前端技术(47)
网龙(3)
考智力(1)
股票/基金(20)
随笔档案
(134)
2011年10月 (1)
2011年5月 (1)
2011年1月 (2)
2010年10月 (1)
2010年8月 (3)
2010年7月 (3)
2010年6月 (1)
2010年4月 (5)
2010年3月 (32)
2010年2月 (6)
2010年1月 (29)
2009年12月 (12)
2009年11月 (22)
2009年10月 (11)
2009年8月 (4)
2009年7月 (1)
文章分类
(77)
C#(8)
google
web前端开发(20)
微软文档(2)
生活(14)
网龙(8)
股票(25)
文章档案
(109)
2012年1月 (1)
2010年3月 (1)
2009年12月 (6)
2009年11月 (29)
2009年10月 (24)
2009年9月 (24)
2009年8月 (20)
2009年7月 (4)
email
ebecket@163.com
Email:ebecket@163.com
scottgu牛博
返还网
常去的Blog
前途无量
叶荣添
庄家与散户 中金Blog
搜索
最新评论
1. re: 解决下拉菜单会被swf文件遮住的问题
厉害 发帖人!谢谢!
--beiwei32
2. re: request.querystring和request.form的区别
request.querystring是用post方法读取的 不安全
request.form是用get方法读取的 这说的不对吧
--mesurpass
3. re: c# Office文件转换成Html格式(将PPT转换成HTML)[未登录]
不还是需要安装OFFICE么
--mask
4. re: ie 开发人员工具F12找不到的解决办法
擦,原来是这样啊 害得我弄了半天
差点就卸了从新安装!!
--寒蝉
5. re: tinyMce在线编辑器内JavaScript实现按Ctrl+S无刷新保存 [未登录]
ie下面还是会出现系统默认的那个保存的
--1
6. re: 解决下拉菜单会被swf文件遮住的问题
好文章 ,作者的水平太高了。。。
--qq2293502086
7. re: 建一个别人进不了删不掉的绝密文件夹
为什么我按照以上方法进入不了绝密文件啊?
--why
8. re: ie 开发人员工具F12找不到的解决办法
@喔喔兒
@updoogis
说明ms设计得不够人性化!!
--ebecket
9. re: ie 开发人员工具F12找不到的解决办法
非常感谢!
弄了半天,原来是这么回事。
ms为什么要怎么做呢?
--updoogis
10. re: ie 开发人员工具F12找不到的解决办法
= =,汗..原来是这么回事,我还以为清理插件给清掉了呢,
--喔喔兒
11. re: CCTV4走遍中国 漳州系列[未登录]
真好,走到哪里都有家乡情结的。
--hh
阅读排行榜
1. C# WinForm 上传图片,文件到服务器的方法Uploader.ashx(2854)
2. ie 开发人员工具F12找不到的解决办法(2251)
3. js中三种遍历数组的效率(1975)
4. 利用js获取服务器时间的两个简单方法(1735)
5. Web 调试代理软件Fiddler 一个http调试代理,能够记录所有的你电脑和互联网之间的http通讯(1578)
6. tinyMce在线编辑器内JavaScript实现按Ctrl+S无刷新保存 (1567)
7. JSON in .Net(1220)
8. 一直处于页面底部的div(1089)
9. js处理ie关闭事件(1086)
10. 任意类型转换成json(981)
11. 浅析C#基于TCP协议的SCOKET通信(879)
12. HTML5+CSS3 W3C规范<<中文版>>参考手册(提供下载) (800)
13. 2010 中国城市分类优势排行榜(760)
14. 2008年中国城市GDP排名 目前最精确的数据(国家统计局排名):(682)
15. C# Enum枚举类型使用总结 (679)
评论排行榜
1. ie 开发人员工具F12找不到的解决办法(4)
2. tinyMce在线编辑器内JavaScript实现按Ctrl+S无刷新保存 (1)
3. 巴菲特与王永庆的共同致富习惯(0)
4. 永辉超市必杀技(0)
5. js中的replace问题和textarea回车符问题(0)
6. jquery 选择器部分整理(0)
7. 创意网龙牵中新友谊纽带(0)
8. 北京最高楼(0)
9. jQuery $.post $.ajax用法 (0)
10. javascript jQuery $.post $.ajax用法(0)
11. js常用函数整理(0)
12. 获取控件在网页中的绝对位置 (0)
13. jquery 消息插件--仿QQ消息弹出提醒 (0)
14. meta 标签之NAME属性 详解(0)
15. 常用ajax的get与post方法 (0)