ASP. NET Add, delete, modify, and query XML by: Admin Date: Font size: medium or large Click to download this fileUser. xml <? XML version = "1.0" encoding = "UTF-8"?> <Userinfo> <Datarow> <Username> 333 </username> & Lt; password & gt; 333 & lt;/password & gt; <Study> 333 </study> </Datarow> </Userinfo> Using system; Using system. collections; Using system. componentmodel; Using system. Data; Using system. drawing; Using system. Web; Using system. Web. sessionstate; Using system. Web. UI; Using system. Web. UI. webcontrols; Using system. Web. UI. htmlcontrols; Using system. IO; Using system. xml; Namespace xmldom { /// <Summary> /// Summary of webform1. /// </Summary> Public class webform1: system. Web. UI. Page { Protected system. Web. UI. webcontrols. textbox textbox1; Protected system. Web. UI. webcontrols. textbox textbox2; Protected system. Web. UI. webcontrols. textbox textbox3; Protected system. Web. UI. webcontrols. Button button1; Protected system. Web. UI. webcontrols. DataGrid datagrid1; Private void page_load (Object sender, system. eventargs E) { // Place user code here to initialize the page Readxml (); } Private void readxml () { String url = server. mappath ("user. xml"); // obtain the XML file in the current folder Streamreader sread = new streamreader (URL, system. text. encoding. getencoding ("gb2312"); // read characters from the byte stream with a specific encoding. garbled characters cannot be obtained only after being converted to gb2312. Xmldatadocument datadoc = new xmldatadocument (); // operate XML documents Datadoc. dataset. readxml (sread); // Save the read byte stream to dataset. This. datagrid1.datasource = datadoc. dataset. Tables [0]. defaultview; Datagrid1.datakeyfield = "username"; // create an index with Username This. datagrid1.databind (); Datadoc = NULL; // clear the XML data operation Sread. Close (); // close byte stream reading } # Code generated by region web Form Designer Override protected void oninit (eventargs E) { // // Codegen: This call is required by the ASP. NET web form designer. // Initializecomponent (); Base. oninit (E ); } /// <Summary> /// The designer supports the required methods-do not use the code editor to modify /// Content of this method. /// </Summary> Private void initializecomponent () { This. Maid + = new system. Web. UI. webcontrols. Fig cancelcommand ); This. Maid + = new system. Web. UI. webcontrols. Maid (this. Maid editcommand ); This. Maid + = new system. Web. UI. webcontrols. Maid (this. Maid updatecommand ); This. Maid + = new system. Web. UI. webcontrols. Maid (this. Maid deletecommand ); This. button1.click + = new system. eventhandler (this. button#click ); This. Load + = new system. eventhandler (this. page_load ); } # Endregion Private void datagrid1_deletecommand (Object source, system. Web. UI. webcontrols. datagridcommandeventargs E) { String url = server. mappath ("user. xml "); String str_username = maid [E. Item. itemindex]. tostring (); Xmldocument xmldoc = new xmldocument (); Xmldoc. Load (URL); // load the XML file Xmlnode root = xmldoc. selectsinglenode ("userinfo"); // find the userinfo Node Xmlnodelist xnl = root. childnodes; // obtain the subnode under userinfo For (INT I = 0; I <xnl. Count; I ++) { Xmlnodelist xnl11 = xnl. Item (I). selectnodes ("username"); // find the node set under Username Xmlelement Xe = (xmlelement) xnl11.item (0); // elements under the username Node If (Xe. innertext = str_username) // gets the serial values of nodes and all subsets. { Root. removechild (Xe. parentnode); // remove the finger-top node // Xe. parentnode. removechild (xe ); // Xnl. Item (I). removechild (xe ); // If (I <xnl. Count) I = I-1; } } Xmldoc. Save (URL ); Readxml (); } Private void button#click (Object sender, system. eventargs E) { String url = server. mappath ("user. xml "); String str_username = This. textbox1.text. tostring (); String str_password = This. textbox2.text. tostring (); String str_study = This. textbox3.text. tostring (); Try { Xmldocument xmldoc = new xmldocument (); Xmldoc. Load (URL); // load the XML document Xmlnode root = xmldoc. selectsinglenode ("userinfo"); // find the First Matching xmlnode Xmlelement xe1 = xmldoc. createelement ("datarow"); // create the first element of the first node Xmlelement xesub1 = xmldoc. createelement ("username"); // create attributes in the first element of the first node Xesub1.innertext = str_username; // set the text node Xe1.appendchild (xesub1); // Add the specified node to the end of the node's subnode list Xmlelement xesub2 = xmldoc. createelement ("password "); Xesub2.innertext = str_password; Xe1.appendchild (xesub2 ); Xmlelement xesub3 = xmldoc. createelement ("study "); Xesub3.innertext = str_study; Xe1.appendchild (xesub3 ); Root. appendchild (xe1 ); Xmldoc. Save (URL); // Save the XML file Readxml (); } Catch (exception ex) { Response. Write (ex. tostring ()); } } Private void datagrid1_editcommand (Object source, system. Web. UI. webcontrols. datagridcommandeventargs E) { This. datagrid1.edititemindex = E. Item. itemindex; Readxml (); } Private void datagrid1_cancelcommand (Object source, system. Web. UI. webcontrols. datagridcommandeventargs E) { This. Maid =-1; Readxml (); } Private void datagrid1_updatecommand (Object source, system. Web. UI. webcontrols. datagridcommandeventargs E) { String url = server. mappath ("user. xml "); String str_username = maid [E. Item. itemindex]. tostring (); Textbox txt_username = (textbox) (E. Item. cells [2]. controls [0]); Textbox txt_password = (textbox) (E. Item. cells [3]. controls [0]); Textbox drp_study = (textbox) (E. Item. cells [4]. controls [0]); Xmldocument xmldoc = new xmldocument (); Xmldoc. Load (URL); // load the XML file Xmlnode root = xmldoc. selectsinglenode ("userinfo"); // find the userinfo Node Xmlnodelist xnl = root. childnodes; // obtain the subnode under userinfo For (INT I = 0; I <xnl. Count; I ++) { Xmlnodelist xnl11 = xnl. Item (I). selectnodes ("username"); // find the node set under Username Xmlelement Xe = (xmlelement) xnl11.item (0); // elements under the username Node If (Xe. innertext = str_username) // gets the serial values of nodes and all subsets. { Xe. innertext = txt_username.text; Xe. parentnode. childnodes. Item (1). innertext = txt_password.text; Xe. parentnode. childnodes. Item (2). innertext = drp_study.text; } } Xmldoc. Save (URL ); This. Maid =-1; Readxml (); } } } |