仰天一笑
昨日不悔,今日勿失,明日莫忧! —徐羽
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
274 随笔 :: 27 文章 :: 1001 评论 :: 43 引用
读写xml所有节点个人小结 和 读取xml节点的数据总结
读:
//
打开某文件(假设web.config在根目录中)
string
filename
=
Server.MapPath(
"
/
"
)
+
@"
WebApplication1\web.config
"
;
XmlDocument xmldoc
=
new
XmlDocument();
xmldoc.Load(filename);
//
得到顶层节点列表
XmlNodeList topM
=
xmldoc.DocumentElement.ChildNodes;
foreach
(XmlElement element
in
topM)
{
if
(element.Name.ToLower()
==
"
appsettings
"
)
{
//
得到该节点的子节点
XmlNodeList nodelist
=
element.ChildNodes;
if
( nodelist.Count
>
0
)
{
//
DropDownList1.Items.Clear();
foreach
(XmlElement el
in
nodelist)
//
读元素值
{
//
DropDownList1.Items.Add(el.Attributes["key"].InnerXml);
//
this.TextBox2.Text=el.Attributes["key"].InnerText;
this
.TextBox2.Text
=
el.Attributes[
"
key
"
].Value;
this
.Label1.Text
=
el.Attributes[
"
value
"
].Value;
//
同样在这里可以修改元素值,在后面save。
//
el.Attributes["value"].Value=this.TextBox2.Text;
}
}
}
}
xmldoc.Save(filename);
在某节点下增加一个元素,并设置值:
if
(element.Name.ToLower()
==
"
appsettings
"
)
{
XmlElement elem
=
xmldoc.CreateElement(
"
add
"
);
element.AppendChild(elem);
elem.InnerText
=
"
ltp
"
;
xmldoc.Save(filename);
}
效果:
<
appSettings
>
<
add key
=
"
密码
"
value
=
"
admin
"
/>
<
add
>
ltp
</
add
>
</
appSettings
>
在某节点下增加一个元素,并增加两个属性:
if
(element.Name.ToLower()
==
"
appsettings
"
)
{
XmlElement elem
=
xmldoc.CreateElement(
"
add
"
);
element.AppendChild(elem);
XmlAttribute xa
=
xmldoc.CreateAttribute(
"
key
"
);
xa.Value
=
"
ltp
"
;
XmlAttribute xa2
=
xmldoc.CreateAttribute(
"
value
"
);
xa2.Value
=
"
first
"
;
elem.SetAttributeNode(xa);
elem.SetAttributeNode(xa2);
xmldoc.Save(filename);
}
效果:
<
appSettings
>
<
add key
=
"
密码
"
value
=
"
admin
"
/>
<
add key
=
"
ltp
"
value
=
"
first
"
/>
</
appSettings
>
//
添加空元素:
XmlNode node
=
doc.CreateElement(groupname);
node.InnerText
=
""
;
doc.LastChild.AppendChild(node);
doc.Save(xmlfile);
删除一个节点元素
string
itemname
=
this
.listBox1.SelectedItem.ToString();
this
.listBox1.Items.Remove(
this
.listBox1.SelectedItem);
//
begin del xmlfile
XmlDocument doc
=
new
XmlDocument();
doc.Load(xmlfile);
XmlNodeList topM
=
doc.DocumentElement.ChildNodes;
foreach
(XmlElement element
in
topM)
{
if
(element.Name
==
this
.comboBox1.Text)
{
//
得到该节点的子节点
XmlNodeList nodelist
=
element.ChildNodes;
foreach
(XmlElement el
in
nodelist)
//
读元素值
{
if
(el.Attributes[
"
key
"
].Value
==
itemname)
{
element.RemoveChild(el);
}
}
//
循环元素
}
//
得到组
}
//
循环组
doc.Save(xmlfile);
//
一定要保存一下,否则不起作用
//
筛选数据
private
void
Reader_Xml(
string
pathFlie)
{
XmlDocument Xmldoc
=
new
XmlDocument();
Xmldoc.Load(pathFlie);
XmlNodeList Record1
=
Xmldoc.DocumentElement.SelectNodes(Code[@id
=
'
1
'
])
int
f
=
0
;
foreach
(XmlNode xnode
in
Record1)
{
}
}
/**/
/*
读取xml数据 两种xml方式
*/
<
aaa
>
<
bb
>
something
</
bb
>
<
cc
>
something
</
cc
>
</
aaa
>
<
aaa
>
<
add key
=
"
123
"
value
=
"
321
"
/>
</
aaa
>
/**/
/*
第一种方法
*/
DS.ReadXml(
"
your xmlfile name
"
);
Container.DataItem(
"
bb
"
);
Container.DataItem(
"
cc
"
);
DS.ReadXmlSchema(
"
your xmlfile name
"
);
/**/
/*
第二种方法
*/
<
aaa
>
<
add key
=
"
123
"
value
=
"
321
"
/>
</
aaa
>
如果我要找到123然后取到321应该怎么写呢?
using
System.XML;
XmlDataDocument xmlDoc
=
new
System.Xml.XmlDataDocument();
xmlDoc.Load(
@"
c:\Config.xml
"
);
XmlElement elem
=
xmlDoc.GetElementById(
"
add
"
);
string
str
=
elem.Attributes[
"
value
"
].Value
/**/
/*
第三种方法: SelectSingleNode 读取两种格式的xml *---/
--------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<ConnectionString>Data Source=yf; user id=ctm_dbo;password=123</ConnectionString>
</appSettings>
</configuration>
--------------------------------------------------------------------------
XmlDocument doc = new XmlDocument();
doc.Load(strXmlName);
XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString");
if(node!=null)
{
string k1=node.Value; //null
string k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123
string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123
node=null;
}
********************************************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" />
</appSettings>
</configuration>
**--------------------------------------------------------------------**
XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
if(node!=null)
{
string k=node.Attributes["key"].Value;
string v=node.Attributes["value"].Value;
node=null;
}
*--------------------------------------------------------------------*
XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
if(node!=null)
{
XmlNodeReader nr=new XmlNodeReader(node);
nr.MoveToContent();
//检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。
nr.MoveToAttribute("value");
string s=nr.Value;
node=null;
}
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted on 2006-12-18 13:58
仰天一笑
阅读(5184)
评论(3)
编辑
收藏
评论
1350575
#1楼
2007-02-02 23:13
利比亚
不错!
学习了下
回复
引用
查看
#2楼
2008-10-24 17:51
leolion[未注册用户]
非常好,什么的
回复
引用
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
猎聘网网络招聘新势力
·
京东被指压榨供货商续:苛刻条款或只针对小企业
·
Facebook公布犯罪团伙名单被批妨碍司法调查
·
传谷歌正开发家庭娱乐系统 以自有品牌销售
·
平安信托折戟Facebook 中国富豪梦碎IPO盛宴
»
更多新闻...
最新知识库文章
:
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
·
前端必读:浏览器内部工作原理
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
一、版权归原创作者所有;
二、坚持挖掘互联网宝藏;
三、重在技术交流,共享知识,愿交天下朋友;
四、技术文章包括asp.net、seo、ajax、css、javascript等。
Email:ansonxy@gmail.com
QQ:
943530498
MSN:
dingxi819@yahoo.com.cn
仰天一笑心灵成长博客
仰天一笑电子商务博客
仰天一笑新浪微博
昵称:
仰天一笑
园龄:
6年5个月
粉丝:
64
关注:
17
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
最新随笔
1. 解决方案:Could not write to output file 'c:\windows\Microsoft.NET\Framework\........dll' -- '拒绝访问。 '
2. 一般情况下asp可以正常运行,但只要连接数据库就提示,Microsoft JET Database Engine 错误
3. 关于Asp.net无法写入输出文件的原因
4. 【推荐】Lazy Load, 延迟加载图片的 jQuery 插件
5. 中秋祝福
6. 纳兰性德诗词全集
7. 传统企业品牌转型电商的几大思考
8. World Wide Web Publishing服务无法启动提示:错误127 找不到指定程序/路径
9. ASP.NET(C#)常用数据加密和解密方法汇总
10. 数据加密技术
我的标签
数据加密技术
(3)
数据加密
(3)
数据加密算法
(1)
身份认证
(1)
信息认证技术
(1)
数字签名
(1)
密钥管理技术
(1)
C#常用加密方法汇总
(1)
对称加密
(1)
非对称加密
(1)
更多
随笔分类
(310)
ASP.Net-C#(85)
(rss)
CSS(1)
(rss)
DataBase(33)
(rss)
Javascript/Ajax/XML(51)
(rss)
产品专卖(4)
(rss)
电子商务(8)
(rss)
古风古韵(13)
(rss)
谈天论地(33)
(rss)
网站建设(36)
(rss)
项目管理(1)
(rss)
疑难杂症(2)
(rss)
原创天地(43)
(rss)
文章分类
(27)
DotNet(12)
(rss)
DRM(5)
(rss)
Electronic Commerce(2)
(rss)
JavaScript(3)
(rss)
software engineering (5)
(rss)
相册
汇亚创意设计
上海汇亚科技公司
My Links
dudu
(rss)
jackei
(rss)
net366_汇亚科技
seo探索
公司BLOG
(rss)
海东
(rss)
黑梦SEO
汇亚创意设计
酷勤网
樂思蜀SEO博客
(rss)
李天平
(rss)
网络安全
兄弟blog
积分与排名
积分 - 631728
排名 - 78
最新评论
阅读排行榜
评论排行榜