C#編寫XML讀寫類操作xml檔案

來源:互聯網
上載者:User

C#編寫XML讀寫類操作xml檔案


下面的例子是用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檔案 的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.