下面的例子是用C# 在asp.net 中實作對xml的操作,環境是vs2005 , 自己寫了一個操作類,然後在使用的時候調用它。
實作:登入使用者資訊的新增、修改和刪除,不使用資料庫,只在本機存放一個xml檔。
下面是User.xml檔案的格式,放在網站跟目錄中,本例只為實現操作xml的功能,所以登入密碼沒有加密,在實際應用中,你應該考慮這個問題。同時,這個檔案應該賦予寫入的權限,這點比較容易疏漏。
<?xml version="1.0"?> <UserLogin> <User> <UserCode>001</UserCode> <UserName>操作员1</UserName> <UserPwd>111</UserPwd> </User> <User> <UserCode>002</UserCode> <UserName>操作员2</UserName> <UserPwd>222</UserPwd> </User> </UserLogin>
下面我們開始編碼,首先vs2005建立asp.net 網站,選擇c#語言
新建一個web窗體,放上三個textbox,三個button,暫時不用改名字,為了方便大家(以及我懶)這個例子中沒有改控件的名字(臉紅)。
接著新建專案--類,取名為XmlRW.cs,存放到app_Code資料夾中
在最上部加上對xml的using : using System.Xml 如下面的程式碼
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml;
/**//// <summary> /// Xml文件的读写类 /// </summary> /// public class XmlRW ...{ public XmlRW() ...{ // // TODO: 在此处添加构造函数逻辑 // } /**///// 大家注意 我们下面的内容在这里写 }
然後,我們開始寫三個方法,來完成xml檔案記錄的增加,修改刪除,也就是對UserCode,UserName,NamePwd的操作。程式碼如下:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; /**//// <summary> /// Xml文件的读写类 /// </summary> /// public class XmlRW ...{ public XmlRW() ...{ // // TODO: 在此处添加构造函数逻辑 // } //WriteXml 完成对User的添加操作 //FileName 当前xml文件的存放位置 //UserCode 欲添加用户的编码 //UserName 欲添加用户的姓名 //UserPassword 欲添加用户的密码 public void WriteXML(string FileName,string UserCode,string UserName,string UserPassword) ...{ //初始化XML文档操作类 XmlDocument myDoc = new XmlDocument(); //加载XML文件 myDoc.Load(FileName); //添加元素--UserCode XmlElement ele = myDoc.CreateElement("UserCode"); XmlText text = myDoc.CreateTextNode(UserCode); //添加元素--UserName XmlElement ele1 = myDoc.CreateElement("UserName"); XmlText text1 = myDoc.CreateTextNode(UserName); //添加元素--UserPwd XmlElement ele2 = myDoc.CreateElement("UserPwd"); XmlText text2 = myDoc.CreateTextNode(UserPassword); //添加节点 User要对应我们xml文件中的节点名字 XmlNode newElem = myDoc.CreateNode("element", "User", ""); //在节点中添加元素 newElem.AppendChild(ele); newElem.LastChild.AppendChild(text); newElem.AppendChild(ele1); newElem.LastChild.AppendChild(text1); newElem.AppendChild(ele2); newElem.LastChild.AppendChild(text2); //将节点添加到文档中 XmlElement root = myDoc.DocumentElement; root.AppendChild(newElem); //保存 myDoc.Save(FileName); } //DeleteNode 完成对User的添加操作 //FileName 当前xml文件的存放位置 //UserCode 欲添加用户的编码 public void DeleteNode(string FileName, string UserCode) ...{ //初始化XML文档操作类 XmlDocument myDoc = new XmlDocument(); //加载XML文件 myDoc.Load(FileName); //搜索指定某列,一般是主键列 XmlNodeList myNode = myDoc.SelectNodes("//UserCode"); //判断是否有这个节点 if (!(myNode == null)) ...{ //遍历节点,找到符合条件的元素 foreach (XmlNode xn in myNode) ...{ if (xn.InnerXml == UserCode) //删除元素的父节点 xn.ParentNode.ParentNode.RemoveChild(xn.ParentNode); } } //保存 myDoc.Save(FileName); } //WriteXml 完成对User的修改密码操作 //FileName 当前xml文件的存放位置 //UserCode 欲操作用户的编码 //UserPassword 欲修改用户的密码 public void UpdateXML(string FileName, string UserCode, string UserPassword) ...{ //初始化XML文档操作类 XmlDocument myDoc = new XmlDocument(); //加载XML文件 myDoc.Load(FileName); //搜索指定的节点 System.Xml.XmlNodeList nodes = myDoc.SelectNodes("//User"); if (nodes != null) ...{ foreach (System.Xml.XmlNode xn in nodes) ...{ if (xn.SelectSingleNode("UserCode").InnerText == UserCode) ...{ xn.SelectSingleNode("UserPwd").InnerText = UserPassword; } } } myDoc.Save(FileName); } }
Ok!這樣操作xml的類別我們基本上就搞定了,下面回到一開始我們創建的那個頁面上,為三個button加入它們相應的代碼,即可超級輕鬆的實現對登錄用戶的操作,吼吼~
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class XmlTest1 : System.Web.UI.Page ...{ protected void Page_Load(object sender, EventArgs e) ...{ } protected void Button1_Click(object sender, EventArgs e) ...{ //添加引用,创建实例 XmlRW myXml = new XmlRW(); //调用我们实现定义好的方法,对应传入各个参数 myXml.WriteXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox2.Text, TextBox3.Text); Response.Write("Save OK!"); } protected void Button2_Click(object sender, EventArgs e) ...{ XmlRW myXml = new XmlRW(); myXml.DeleteNode(Server.MapPath("YtConfig.xml"), TextBox1.Text ); Response.Write("Delete OK!"); } protected void Button3_Click(object sender, EventArgs e) ...{ XmlRW myXml = new XmlRW(); myXml.UpdateXML(Server.MapPath("YtConfig.xml"), TextBox1.Text, TextBox3.Text ); Response.Write("Update OK!"); } }
執行測試,在textbox1中輸入使用者編碼,在textbox2填入使用者名稱,並在textbox3填入登錄密碼,點選button1完成新增....注意xml要事先先建好才行,其它略同.
以上是C#寫XML讀寫類別操作xml檔 的內容,更多相關內容請關注PHP中文網(www.php.cn)!