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