1.已知有一个XML文件(bookstore.xml)如下:
1、往<bookstore>节点中插入一个<book>节点:
//================ 结果为:
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
<%@Pagelanguage=\”c#\”Codebehind=\”Main.aspx.cs\”AutoEventWireup=\”false\”Inherits=\”DsAndXML.OpXMLFile.Main\”%><!DOCTYPEHTMLPUBLIC\”-//W3C//DTDHTML4.0Transitional//EN\”><HTML><HEAD><title>Main</title><metaname=\”GENERATOR\”Content=\”MicrosoftVisualStudio7.0\”><metaname=\”CODE_LANGUAGE\”Content=\”C#\”><metaname=\”vs_defaultClientScript\”content=\”JavaScript\”><metaname=\”vs_targetSchema\”content=\”http://schemas.microsoft.com/intellisense/ie5\”></HEAD><bodyMS_POSITIONING=\”GridLayout\”><formid=\”Main\”method=\”post\”runat=\”server\”><FONTface=\”宋体\”><asp:DataGridid=\”dgShow\”style=\”Z-INDEX:100;LEFT:113px;POSITION:absolute;TOP:32px\”runat=\”server\”Width=\”480px\”Height=\”178px\”></asp:DataGrid><asp:Labelid=\”Label3\”style=\”Z-INDEX:111;LEFT:187px;POSITION:absolute;TOP:383px\”runat=\”server\”Width=\”120px\”Height=\”21px\”>新邮件地址:</asp:Label><asp:Labelid=\”Label2\”style=\”Z-INDEX:107;LEFT:333px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”83px\”Height=\”21px\”>邮件地址:</asp:Label><asp:Buttonid=\”btnAdd\”style=\”Z-INDEX:104;LEFT:298px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”添加\”></asp:Button><asp:Buttonid=\”btnDelete\”style=\”Z-INDEX:103;LEFT:199px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”删除\”></asp:Button><asp:Buttonid=\”btnChange\”style=\”Z-INDEX:102;LEFT:102px;POSITION:absolute;TOP:382px\”runat=\”server\”Text=\”修改\”></asp:Button><asp:Buttonid=\”btnQuery\”style=\”Z-INDEX:101;LEFT:101px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”查询\”></asp:Button><asp:DropDownListid=\”ddlName\”style=\”Z-INDEX:105;LEFT:210px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”95px\”Height=\”78px\”></asp:DropDownList><asp:Labelid=\”Label1\”style=\”Z-INDEX:106;LEFT:100px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”83px\”Height=\”21px\”>姓名:</asp:Label><asp:Labelid=\”lbEmail\”style=\”Z-INDEX:109;LEFT:459px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”231px\”></asp:Label><asp:TextBoxid=\”tbNewMail\”style=\”Z-INDEX:110;LEFT:330px;POSITION:absolute;TOP:381px\”runat=\”server\”Width=\”208px\”Height=\”26px\”></asp:TextBox></FONT></form></body></HTML>XML文件dbGuest.xml
<?xmlversion=\”1.0\”standalone=\”yes\”?><dbGuest><User><Name>aaa</Name><City>shanghai</City><Email>aaa@263.net</Email><Message>ok</Message><STime>2004-07-12T00:00:00.0000000+08:00</STime></User><User><Name>shaoazhd</Name><City>beijing</City><Email>sss@22.net</Email><Message>afsa</Message><STime>2004-7-1215:07:39</STime></User><User><Name>Guset</Name><City>上海</City><Email>sfaf@22.net</Email></User><User><Name>Guset</Name><City>上海</City><Email>ss@22.net</Email></User></dbGuest>
usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlControls;usingSystem.Xml;usingSystem.Xml.XPath;namespaceDsAndXML.OpXMLFile{/**////<summary>///Main的摘要说明。///</summary>publicclassMain:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.ButtonbtnQuery;protectedSystem.Web.UI.WebControls.ButtonbtnChange;protectedSystem.Web.UI.WebControls.ButtonbtnDelete;protectedSystem.Web.UI.WebControls.ButtonbtnAdd;protectedSystem.Web.UI.WebControls.DropDownListddlName;protectedSystem.Web.UI.WebControls.LabelLabel1;protectedSystem.Web.UI.WebControls.LabelLabel2;protectedSystem.Web.UI.WebControls.LabellbEmail;protectedSystem.Web.UI.WebControls.TextBoxtbNewMail;protectedSystem.Web.UI.WebControls.LabelLabel3;protectedSystem.Web.UI.WebControls.DataGriddgShow;privatevoidPage_Load(objectsender,System.EventArgse){//在此处放置用户代码以初始化页面if(!IsPostBack)Bind();}privatevoidBind(){DataSetds=newDataSet();ds.ReadXml(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));dgShow.DataSource=ds.Tables[0].DefaultView;dgShow.DataBind();XmlDocumentdoc=newXmlDocument();doc.Load(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));XmlNodeListelemList=doc.GetElementsByTagName(\”Name\”);ddlName.Items.Clear();for(inti=0;i<elemList.Count;i++)ddlName.Items.Add(elemList[i].InnerXml);}WebFormDesignergeneratedcode#regionWebFormDesignergeneratedcodeoverrideprotectedvoidOnInit(EventArgse){////CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。//InitializeComponent();base.OnInit(e);}/**////<summary>///设计器支持所需的方法-不要使用代码编辑器修改///此方法的内容。///</summary>privatevoidInitializeComponent(){this.btnQuery.Click+=newSystem.EventHandler(this.btnQuery_Click);this.btnChange.Click+=newSystem.EventHandler(this.btnChange_Click);this.btnDelete.Click+=newSystem.EventHandler(this.btnDelete_Click);this.btnAdd.Click+=newSystem.EventHandler(this.btnAdd_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidbtnQuery_Click(objectsender,System.EventArgse){XmlDocumentdoc=newXmlDocument();doc.Load(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));lbEmail.Text=doc.SelectSingleNode(\”//User[Name=\’\”+ddlName.SelectedItem.Text+\”\’]\”).ChildNodes.Item(2).InnerText;}privatevoidbtnChange_Click(objectsender,System.EventArgse){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));XmlNodeListnodeList=xmlDoc.SelectSingleNode(\”dbGuest\”).ChildNodes;//获取dbGuest节点的所有子节点foreach(XmlNodexninnodeList)//遍历所有子节点{XmlElementxe=(XmlElement)xn;//将子节点类型转换为XmlElement类型XmlNodeListnode=xe.GetElementsByTagName(\”Name\”);if(node.Count>0){if(node[0].InnerText==ddlName.SelectedItem.Text){XmlNodeListnls=xe.ChildNodes;//继续获取xe子节点的所有子节点foreach(XmlNodexn1innls)//遍历{XmlElementxe2=(XmlElement)xn1;//转换类型if(xe2.Name==\”Email\”)//如果找到{xe2.InnerText=tbNewMail.Text;//则修改break;//找到退出来就可以了}}break;}}}xmlDoc.Save(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));Bind();}privatevoidbtnDelete_Click(objectsender,System.EventArgse){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));XmlNodeListxnl=xmlDoc.SelectSingleNode(\”dbGuest\”).ChildNodes;foreach(XmlNodexninxnl){XmlElementxe=(XmlElement)xn;XmlNodeListnode=xe.GetElementsByTagName(\”Name\”);if(node.Count>0){if(node[0].InnerText==ddlName.SelectedItem.Text)xe.RemoveAll();//删除该节点的全部内容break;}}xmlDoc.Save(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));Bind();}privatevoidbtnAdd_Click(objectsender,System.EventArgse){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));XmlNoderoot=xmlDoc.SelectSingleNode(\”dbGuest\”);//查找<dbGuest>XmlElementxe1=xmlDoc.CreateElement(\”User\”);//创建一个<User>节点XmlElementxesub1=xmlDoc.CreateElement(\”Name\”);xesub1.InnerText=\”Guset\”;//设置文本节点xe1.AppendChild(xesub1);//添加到<User>节点中XmlElementxesub2=xmlDoc.CreateElement(\”City\”);xesub2.InnerText=\”上海\”;xe1.AppendChild(xesub2);XmlElementxesub3=xmlDoc.CreateElement(\”Email\”);xesub3.InnerText=\”ss@22.net\”;xe1.AppendChild(xesub3);root.AppendChild(xe1);//添加到<dbGuest>节点中xmlDoc.Save(Server.MapPath(\”.\\\\db\\\\dbGuest.xml\”));Bind();}}}