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 btnCreateXml_Click(object sender,请检查xmldocs文件夹的写入权限!"; return; } } lblMsg.Text = "xml文件创建成功"; BindXMLFiles(); GetXmlContent(); BindUserNames(); }
删除用户 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; }