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("//user[name=’"+selectname+"’]").childnodes.item(2).innertext; lblmsg.text = "查询"+selectname+"用户email为"+email; } |
新闻热点
疑难解答
图片精选