zoukankan
html css js c++ java
C# 操作 XML 增 删 改 查
xml文件格式
<?
xml version="1.0"
?>
<
dbGuest
>
<
User
>
<
Name
uid
="d"
>
ew
</
Name
>
<
City
>
dsa
</
City
>
<
Email
>
eq
</
Email
>
</
User
>
</
dbGuest
>
操作方式
//
创建XML文件
private
void
btnCreateXml_Click(
object
sender, System.EventArgs e)
{
//
创建XML文档对象
System.Xml.XmlDocument xmldoc
=
new
System.Xml.XmlDocument();
//
创建xml 声明节点
System.Xml.XmlNode xmlnode
=
xmldoc.CreateNode(System.Xml.XmlNodeType.XmlDeclaration,
""
,
""
);
//
添加上述创建和 xml声明节点
xmldoc.AppendChild(xmlnode);
//
创建xml dbGuest 元素(根节点)
System.Xml.XmlElement xmlelem
=
xmldoc.CreateElement(
""
,
"
dbGuest
"
,
""
);
xmldoc.AppendChild(xmlelem);
try
{
xmldoc.Save(xmlFile);
}
catch
(Exception ex)
{
if
(ex.Message.IndexOf(
"
访问被拒绝
"
)
!=
-
1
)
{
lblMsg.Text
=
"
创建xml文档失败,没有写入权限,请检查xmldocs文件夹的写入权限!
"
;
return
;
}
}
lblMsg.Text
=
"
xml文件创建成功
"
;
BindXMLFiles();
GetXmlContent();
BindUserNames();
}
//
添加用户
private
void
btnAdd_Click(
object
sender, System.EventArgs e)
{
string
uID
=
txtUID.Text;
string
userName
=
txtUserName.Text;
string
City
=
txtCity.Text;
string
Email
=
txtEmail.Text;
if
(
!
System.IO.File.Exists(xmlFile))
{
lblMsg.Text
=
"
xml文件
"
+
xmlFile
+
"
不存在,请先点击创建!
"
;
return
;
}
XmlDocument xmlDoc
=
new
XmlDocument();
xmlDoc.Load(xmlFile);
//
加载文件
XmlNode root
=
xmlDoc.SelectSingleNode(
"
dbGuest
"
);
//
查找<dbGuest>
XmlElement xe_dbGuest_User
=
xmlDoc.CreateElement(
"
User
"
);
//
创建一个<User>节点
XmlElement xe_dbGuest_User_Name
=
xmlDoc.CreateElement(
"
Name
"
);
xe_dbGuest_User_Name.InnerText
=
userName;
//
设置文本节点
XmlAttribute a
=
xmlDoc.CreateAttribute(
"
uid
"
);
//
创建一个 属性
a.Value
=
uID;
xe_dbGuest_User_Name.Attributes.Append(a);
//
增加一个属性
xe_dbGuest_User.AppendChild(xe_dbGuest_User_Name);
//
添加到<User>节点中
XmlElement xe_dbGuest_User_City
=
xmlDoc.CreateElement(
"
City
"
);
//
创建City节点
xe_dbGuest_User_City.InnerText
=
City;
xe_dbGuest_User.AppendChild(xe_dbGuest_User_City);
//
添加到<User>节点中
XmlElement xe_dbGuest_User_Email
=
xmlDoc.CreateElement(
"
Email
"
);
//
创建Email节点
xe_dbGuest_User_Email.InnerText
=
Email;
xe_dbGuest_User.AppendChild(xe_dbGuest_User_Email);
root.AppendChild(xe_dbGuest_User);
//
添加到<dbGuest>节点中
xmlDoc.Save(xmlFile);
//
保存文件
lblMsg.Text
=
"
成功添加用户
"
;
GetXmlContent();
BindXML();
BindUserNames();
}
//
绑定xml数据
private
void
BindXML()
{
if
(
!
System.IO.File.Exists(xmlFile))
{
lblMsg.Text
=
"
xml文件
"
+
xmlFile
+
"
不存在,请先点击创建!
"
;
return
;
}
//
方法一:通过ds 读取 xml
//
DataSet ds = new DataSet();
//
ds.ReadXml(xmlFile);
//
if(ds.Tables.Count > 0)
//
{
//
dgValue.DataSource = ds.Tables[0].DefaultView;
//
dgValue.DataBind();
//
}
//
方法二
DataTable dt
=
new
DataTable();
DataColumn dc
=
new
DataColumn(
"
uid
"
);
dt.Columns.Add(dc);
dc
=
new
DataColumn(
"
name
"
);
dt.Columns.Add(dc);
dc
=
new
DataColumn(
"
city
"
);
dt.Columns.Add(dc);
dc
=
new
DataColumn(
"
email
"
);
dt.Columns.Add(dc);
//
将xml文件加载成xmlDoc
XmlDocument xmlDoc
=
new
XmlDocument();
xmlDoc.Load(xmlFile);
//
得到dbGust所有子节点
XmlNodeList xnl
=
xmlDoc.SelectSingleNode(
"
dbGuest
"
).ChildNodes;
for
(
int
i
=
0
; i
<
xnl.Count;i
++
)
{
//
在每个子节点是遍历 xn 代表的是一个个User
string
uid
=
xnl.Item(i).ChildNodes[
0
].Attributes[
"
uid
"
].Value;
string
name
=
xnl.Item(i).ChildNodes[
0
].InnerText;
string
city
=
xnl.Item(i).ChildNodes[
1
].InnerText;
string
email
=
xnl.Item(i).ChildNodes[
2
].InnerText;
DataRow dr
=
dt.NewRow();
dr[
0
]
=
uid;
dr[
1
]
=
name;
dr[
2
]
=
city;
dr[
3
]
=
email;
dt.Rows.Add(dr);
}
dgValue.DataSource
=
dt;
dgValue.DataBind();
}
//
删除用户
private
void
btnDelete_Click(
object
sender, System.EventArgs e)
{
string
selectName
=
ddlNames.SelectedItem.Text;
string
selectID
=
ddlNames.SelectedValue;
XmlDocument xmlDoc
=
new
XmlDocument();
xmlDoc.Load(xmlFile);
XmlNodeList xnl
=
xmlDoc.SelectSingleNode(
"
dbGuest
"
).ChildNodes;
for
(
int
i
=
0
; i
<
xnl.Count ; i
++
)
{
XmlElement xe
=
(XmlElement)xnl[i];
//
第i个dbGust子节点
XmlNodeList node
=
xe.GetElementsByTagName(
"
Name
"
);
if
(node.Count
>
0
)
{
//
判断为用户选择的
if
(node[
0
].InnerText
==
selectName
&&
node[
0
].Attributes[
"
uid
"
].Value
==
selectID)
{
string
m
=
node[
0
].InnerText;
xmlDoc.SelectSingleNode(
"
dbGuest
"
).RemoveChild(node[
0
].ParentNode);
//
删除该User节点
//
xe.RemoveAll();
//
删除该节点的全部内容 这二种有差别
break
;
}
}
}
xmlDoc.Save(xmlFile);
BindXML();
GetXmlContent();
BindUserNames();
}
//
更新用户
private
void
btnUpdate_Click(
object
sender, System.EventArgs e)
{
string
selectName
=
ddlNames.SelectedItem.Text;
string
selectID
=
ddlNames.SelectedValue;
XmlDocument xmlDoc
=
new
XmlDocument();
xmlDoc.Load(xmlFile);
XmlNodeList nodeList
=
xmlDoc.SelectSingleNode(
"
dbGuest
"
).ChildNodes;
//
获取dbGuest节点的所有子节点
foreach
(XmlNode xn
in
nodeList)
//
遍历所有子节点
{
XmlElement xe
=
(XmlElement)xn;
//
将子节点类型转换为XmlElement类型
XmlNodeList node
=
xe.GetElementsByTagName(
"
Name
"
);
if
(node.Count
>
0
)
{
//
判断为用户选择的
if
(node[
0
].InnerText
==
selectName
&&
node[
0
].Attributes[
"
uid
"
].Value
==
selectID)
{
XmlNodeList nls
=
xe.ChildNodes;
//
继续获取xe子节点的所有子节点
foreach
(XmlNode xn1
in
nls)
//
遍历
{
XmlElement xe2
=
(XmlElement)xn1;
//
转换类型
if
(xe2.Name
==
"
Email
"
)
//
如果找到Email属性
{
xe2.InnerText
=
"
http://eflylab.cnblogs.com
"
;
//
则修改
break
;
//
找到退出来就可以了
}
}
break
;
}
}
}
xmlDoc.Save(xmlFile);
BindXML();
GetXmlContent();
}
//
查询
private
void
btnSelect_Click(
object
sender, System.EventArgs e)
{
XmlDocument doc
=
new
XmlDocument();
doc.Load(xmlFile);
string
selectName
=
ddlNames.SelectedItem.Text;
string
email
=
doc.SelectSingleNode(
"
//User[Name='
"
+
selectName
+
"
']
"
).ChildNodes.Item(
2
).InnerText;
lblMsg.Text
=
"
查询
"
+
selectName
+
"
用户email为
"
+
email;
}
下载本示例
查看全文
相关阅读:
MBG逆向工程报错:generate failed: Exception getting JDBC Driver: com.mysql.jdbc.Driver
抽取的文件上传类如果注入到容器中??
使用阿里云OSS,上传图片时报错:java.lang.ClassNotFoundException:org.apache.http.ssl.TrustStrategy
如何在Eclipse下查看JDK源代码
mvc架构
eclipse各版本介绍
关于mysql MYISAM引擎的锁问题
忘记mysq rootl密码
mysql主从
tomcat启动报错No UserDatabase component found under key UserDatabase
原文地址:https://www.cnblogs.com/eflylab/p/1242982.html
最新文章
MRO_C3
21 继承 MRO C3算法 super
深度递归
unity 常用函数
unity 解析tmx 2
unity 解析tmx
unity 解析xml
unity
unity awake start 的区别
python 代码片段26
热门文章
python 代码片段25
python 代码片段24
python 代码片段23
对数log
Nginx原理
CentOS7下Nginx搭建反向代理,并使用redis保存session
Nginx安装- CentOS7
Nginx简介
Could not render e, see the console.
Field tTypeMapper in com.atguigu.project.service.imp.projectInfoServiceImpl required a bean of type 'com.atguigu.project.mapper.TTypeMapper' that could not be found.
Copyright © 2011-2022 走看看