C#操作XML初步(4)
第二章:往现有XML文件添加记录
我们可以根据XML结构挨个节点、属性的添加。
在测试当中,我们假设原XML文件如下:
<?xml version="1.0" encoding="gb2312"?>
<users>
<user id="1">
<userName>outrace</userName>
<userPass>mypass</userPass>
</user>
<user id="2">
<userName>trace</userName>
<userPass>mypass</userPass>
</user>
</users>
则通过下面的代码进行写入操作 <% @ Import Namespace="System.IO" %>
<% @ Import Namespace="System.Xml" %>
<Script Language="C#" Debug="true" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
/*
* 版 权 : copyright by SEM IT DEPARTMENT
* 版 本 : version 0.0.1
* 文 件 : InsertXml_1.aspx
* 用 途 : 往XML当中新增记录
* 作 者 : 欧阳云天 @2005-4-7
* 邮 箱 : outrace@soueast-motor.com
* 修 改 :
*/
String fileName;
fileName = "users_1.xml";
try
{
//先建立一个XML DOM
XmlDocument doc = new XmlDocument();
//读入XML文件
doc.Load(Server.MapPath("./files/")+fileName);
//建立一个节点。
XmlElement newUser = doc.CreateElement("user");
//建立一个属性,并将次属性放置在接点 “newUser” 下
XmlAttribute newID = doc.CreateAttribute("id");
newID.InnerText = "3";
newUser.SetAttributeNode(newID);
//建立一个节点,并将此做为“newUser”的子节点
XmlElement newUserName = doc.CreateElement("userName");
newUserName.InnerText = "新增用户名";
newUser.AppendChild(newUserName);
//建立一个节点,并将此做为“newUser”的子节点
XmlElement newUserPass = doc.CreateElement("userPass");
newUserPass.InnerText = "新增密码";
newUser.AppendChild(newUserPass);
//将节点“newUser”放在根节点下,并保存
doc.DocumentElement.AppendChild(newUser);
doc.Save(Server.MapPath("./files/")+fileName); //我的文件是放在同目录的file文件夹下的
}
catch(Exception ex)
{
Response.Write(ex.Message);
}
finally
{
}
}
</script>
<html>
<head>
<title>插入一条数据</title>
</head>
<body>
<form runat="server">
<b>XML数据写入成功,文件的内容为:</b>
<p><asp:Xml id="myUser" DocumentSource="./files/users_1.xml" runat="server"/></p>
</form>
</body>
</html>
通过上面的操作,我们将得到的XML结果如下:
<?xml version="1.0" encoding="gb2312"?>
<users>
<user id="1">
<userName>outrace</userName>
<userPass>mypass</userPass>
</user>
<user id="2">
<userName>trace</userName>
<userPass>mypass</userPass>
</user>
<user id="3">
<userName>新增用户名</userName>
<userPass>新增密码</userPass>
</user>
</users>
从中我们不难看出,使用C#中的DOM对象,我们可以非常灵活的在XML的任何位置添加任何属性、节点。使用起来非常方便