xml文件格式
| 以下是引用片段: <?xml version="1.0"?> <dbguest> <user> <name uid="d">ew</name> <city>dsa</city> <email>eq</email> </user> </dbguest> |
創(chuàng)建xml文件
| 以下是引用片段: private void btncreatexml_click(object sender, system.eventargs e) { //創(chuàng)建xml文檔對象 system.xml.xmldocument xmldoc = new system.xml.xmldocument(); //創(chuàng)建xml 聲明節(jié)點(diǎn) system.xml.xmlnode xmlnode = xmldoc.createnode(system.xml.xmlnodetype.xmldeclaration, "", ""); //添加上述創(chuàng)建和 xml聲明節(jié)點(diǎn) xmldoc.appendchild(xmlnode); //創(chuàng)建xml dbguest 元素(根節(jié)點(diǎn)) system.xml.xmlelement xmlelem = xmldoc.createelement("", "dbguest", ""); xmldoc.appendchild(xmlelem); try { xmldoc.save(xmlfile); } catch(exception ex) { if(ex.message.indexof("訪問被拒絕") != -1) { lblmsg.text = "創(chuàng)建xml文檔失敗,沒有寫入權(quán)限,請檢查xmldocs文件夾的寫入權(quán)限!"; return; } } lblmsg.text = "xml文件創(chuàng)建成功"; 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+"不存在,請先點(diǎn)擊創(chuàng)建!"; return; } xmldocument xmldoc = new xmldocument(); xmldoc.load(xmlfile); //加載文件 xmlnode root = xmldoc.selectsinglenode("dbguest");//查找<dbguest> xmlelement xe_dbguest_user = xmldoc.createelement("user");//創(chuàng)建一個(gè)<user>節(jié)點(diǎn) xmlelement xe_dbguest_user_name = xmldoc.createelement("name"); xe_dbguest_user_name.innertext = username;//設(shè)置文本節(jié)點(diǎn) xmlattribute a = xmldoc.createattribute("uid");//創(chuàng)建一個(gè) 屬性 a.value = uid; xe_dbguest_user_name.attributes.append(a);//增加一個(gè)屬性 xe_dbguest_user.appendchild(xe_dbguest_user_name);//添加到<user>節(jié)點(diǎn)中 xmlelement xe_dbguest_user_city = xmldoc.createelement("city");//創(chuàng)建city節(jié)點(diǎn) xe_dbguest_user_city.innertext = city; xe_dbguest_user.appendchild(xe_dbguest_user_city);//添加到<user>節(jié)點(diǎn)中 xmlelement xe_dbguest_user_email = xmldoc.createelement("email");//創(chuàng)建email節(jié)點(diǎn) xe_dbguest_user_email.innertext = email; xe_dbguest_user.appendchild(xe_dbguest_user_email); root.appendchild(xe_dbguest_user);//添加到<dbguest>節(jié)點(diǎn)中 xmldoc.save(xmlfile);//保存文件 lblmsg.text = "成功添加用戶"; getxmlcontent(); bindxml(); bindusernames(); } //綁定xml數(shù)據(jù) private void bindxml() { if(!system.io.file.exists(xmlfile)) { lblmsg.text = "xml文件"+xmlfile+"不存在,請先點(diǎn)擊創(chuàng)建!"; 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所有子節(jié)點(diǎn) xmlnodelist xnl=xmldoc.selectsinglenode("dbguest").childnodes; for(int i = 0 ; i < xnl.count;i++) { //在每個(gè)子節(jié)點(diǎn)是遍歷 xn 代表的是一個(gè)個(gè)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個(gè)dbgust子節(jié)點(diǎn) 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節(jié)點(diǎn) //xe.removeall();//刪除該節(jié)點(diǎn)的全部內(nèi)容 這二種有差別 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節(jié)點(diǎn)的所有子節(jié)點(diǎn) foreach(xmlnode xn in nodelist)//遍歷所有子節(jié)點(diǎn) { xmlelement xe=(xmlelement)xn;//將子節(jié)點(diǎn)類型轉(zhuǎn)換為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;//繼續(xù)獲取xe子節(jié)點(diǎn)的所有子節(jié)點(diǎn) foreach(xmlnode xn1 in nls)//遍歷 { xmlelement xe2=(xmlelement)xn1;//轉(zhuǎn)換類型 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("http://user[name=’"+selectname+"’]").childnodes.item(2).innertext; lblmsg.text = "查詢"+selectname+"用戶email為"+email; } |
新聞熱點(diǎn)
疑難解答
圖片精選