XML 增、删、改和查示例

2023-12-05 0 781

1.已知有一个XML文件(bookstore.xml)如下:



<?xml version=\”1.0\” encoding=\”gb2312\”?><bookstore> <book genre=\”fantasy\” ISBN=\”2-3631-4\”> <title>Oberon\’s Legacy</title> <author>Corets, Eva</author> <price>5.95</price> </book></bookstore>


1、往<bookstore>节点中插入一个<book>节点:



XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(\”bookstore.xml\”); XmlNode root=xmlDoc.SelectSingleNode(\”bookstore\”);//查找<bookstore> XmlElement xe1=xmlDoc.CreateElement(\”book\”);//创建一个<book>节点 xe1.SetAttribute(\”genre\”,\”李赞红\”);//设置该节点genre属性 xe1.SetAttribute(\”ISBN\”,\”2-3631-4\”);//设置该节点ISBN属性 XmlElement xesub1=xmlDoc.CreateElement(\”title\”); xesub1.InnerText=\”CS从入门到精通\”;//设置文本节点 xe1.AppendChild(xesub1);//添加到<book>节点中 XmlElement xesub2=xmlDoc.CreateElement(\”author\”); xesub2.InnerText=\”候捷\”; xe1.AppendChild(xesub2); XmlElement xesub3=xmlDoc.CreateElement(\”price\”); xesub3.InnerText=\”58.3\”; xe1.AppendChild(xesub3); root.AppendChild(xe1);//添加到<bookstore>节点中 xmlDoc.Save(\”bookstore.xml\”);


//================ 结果为:



<?xml version=\”1.0\” encoding=\”gb2312\”?><bookstore> <book genre=\”fantasy\” ISBN=\”2-3631-4\”> <title>Oberon\’s Legacy</title> <author>Corets, Eva</author> <price>5.95</price> </book> <book genre=\”李赞红\” ISBN=\”2-3631-4\”> <title>CS从入门到精通</title> <author>候捷</author> <price>58.3</price> </book></bookstore>


2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。

XmlNodeList nodeList=xmlDoc.SelectSingleNode(\”bookstore\”).ChildNodes;//获取bookstore节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.GetAttribute(\”genre\”)==\”李赞红\”)//如果genre属性值为“李赞红” { xe.SetAttribute(\”genre\”,\”update李赞红\”);//则修改该属性为“update李赞红” XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2=(XmlElement)xn1;//转换类型 if(xe2.Name==\”author\”)//如果找到 { xe2.InnerText=\”亚胜\”;//则修改 break;//找到退出来就可以了 } } break; } } xmlDoc.Save(\”bookstore.xml\”);//保存。

//================= 最后结果为:

<?xml version=\”1.0\” encoding=\”gb2312\”?><bookstore> <book genre=\”fantasy\” ISBN=\”2-3631-4\”> <title>Oberon\’s Legacy</title> <author>Corets, Eva</author> <price>5.95</price> </book> <book genre=\”update李赞红\” ISBN=\”2-3631-4\”> <title>CS从入门到精通</title> <author>亚胜</author> <price>58.3</price> </book></bookstore>

3、除 <book genre=\”fantasy\” ISBN=\”2-3631-4\”>节点的genre属性,删除 <book genre=\”update李赞红\” ISBN=\”2-3631-4\”>节点。

XmlNodeList xnl=xmlDoc.SelectSingleNode(\”bookstore\”).ChildNodes; foreach(XmlNode xn in xnl) { XmlElement xe=(XmlElement)xn;




if(xe.GetAttribute(\”genre\”)==\”fantasy\”) { xe.RemoveAttribute(\”genre\”);//删除genre属性 } else if(xe.GetAttribute(\”genre\”)==\”update李赞红\”) { xe.RemoveAll();//删除该节点的全部内容 } } xmlDoc.Save(\”bookstore.xml\”);

//==================== 最后结果为:

<?xml version=\”1.0\” encoding=\”gb2312\”?><bookstore> <book ISBN=\”2-3631-4\”> <title>Oberon\’s Legacy</title> <author>Corets, Eva</author> <price>5.95</price> </book> <book> </book></bookstore>

4、显示所有数据。

XmlNode xn=xmlDoc.SelectSingleNode(\”bookstore\”); XmlNodeList xnl=xn.ChildNodes; foreach(XmlNode xnf in xnl) { XmlElement xe=(XmlElement)xnf; Console.WriteLine(xe.GetAttribute(\”genre\”));//显示属性值 Console.WriteLine(xe.GetAttribute(\”ISBN\”)); XmlNodeList xnf1=xe.ChildNodes; foreach(XmlNode xn2 in xnf1) { Console.WriteLine(xn2.InnerText);//显示子节点点文本 } }

留做参考,原文地址http://blog.yesky.com/75/richsee/1211075.shtml2前台代码:html


XML 增、删、改和查示例XML 增、删、改和查示例<%XML 增、删、改和查示例@Pagelanguage=\”c#\”Codebehind=\”Main.aspx.cs\”AutoEventWireup=\”false\”Inherits=\”DsAndXML.OpXMLFile.Main\”%>XML 增、删、改和查示例<!DOCTYPEHTMLPUBLIC\”-//W3C//DTDHTML4.0Transitional//EN\”>XML 增、删、改和查示例<HTML>XML 增、删、改和查示例<HEAD>XML 增、删、改和查示例<title>Main</title>XML 增、删、改和查示例<metaname=\”GENERATOR\”Content=\”MicrosoftVisualStudio7.0\”>XML 增、删、改和查示例<metaname=\”CODE_LANGUAGE\”Content=\”C#\”>XML 增、删、改和查示例<metaname=\”vs_defaultClientScript\”content=\”JavaScript\”>XML 增、删、改和查示例<metaname=\”vs_targetSchema\”content=\”http://schemas.microsoft.com/intellisense/ie5\”>XML 增、删、改和查示例</HEAD>XML 增、删、改和查示例<bodyMS_POSITIONING=\”GridLayout\”>XML 增、删、改和查示例<formid=\”Main\”method=\”post\”runat=\”server\”>XML 增、删、改和查示例<FONTface=\”宋体\”>XML 增、删、改和查示例<asp:DataGridid=\”dgShow\”style=\”Z-INDEX:100;LEFT:113px;POSITION:absolute;TOP:32px\”runat=\”server\”Width=\”480px\”Height=\”178px\”></asp:DataGrid>XML 增、删、改和查示例<asp:Labelid=\”Label3\”style=\”Z-INDEX:111;LEFT:187px;POSITION:absolute;TOP:383px\”runat=\”server\”Width=\”120px\”Height=\”21px\”>新邮件地址:</asp:Label>XML 增、删、改和查示例<asp:Labelid=\”Label2\”style=\”Z-INDEX:107;LEFT:333px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”83px\”Height=\”21px\”>邮件地址:</asp:Label>XML 增、删、改和查示例<asp:Buttonid=\”btnAdd\”style=\”Z-INDEX:104;LEFT:298px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”添加\”></asp:Button>XML 增、删、改和查示例<asp:Buttonid=\”btnDelete\”style=\”Z-INDEX:103;LEFT:199px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”删除\”></asp:Button>XML 增、删、改和查示例<asp:Buttonid=\”btnChange\”style=\”Z-INDEX:102;LEFT:102px;POSITION:absolute;TOP:382px\”runat=\”server\”Text=\”修改\”></asp:Button>XML 增、删、改和查示例<asp:Buttonid=\”btnQuery\”style=\”Z-INDEX:101;LEFT:101px;POSITION:absolute;TOP:324px\”runat=\”server\”Text=\”查询\”></asp:Button>XML 增、删、改和查示例<asp:DropDownListid=\”ddlName\”style=\”Z-INDEX:105;LEFT:210px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”95px\”Height=\”78px\”></asp:DropDownList>XML 增、删、改和查示例<asp:Labelid=\”Label1\”style=\”Z-INDEX:106;LEFT:100px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”83px\”Height=\”21px\”>姓名:</asp:Label>XML 增、删、改和查示例<asp:Labelid=\”lbEmail\”style=\”Z-INDEX:109;LEFT:459px;POSITION:absolute;TOP:274px\”runat=\”server\”Width=\”231px\”></asp:Label>XML 增、删、改和查示例<asp:TextBoxid=\”tbNewMail\”style=\”Z-INDEX:110;LEFT:330px;POSITION:absolute;TOP:381px\”runat=\”server\”Width=\”208px\”Height=\”26px\”></asp:TextBox></FONT>XML 增、删、改和查示例</form>XML 增、删、改和查示例</body>XML 增、删、改和查示例</HTML>XML文件dbGuest.xml
XML 增、删、改和查示例<?xmlversion=\”1.0\”standalone=\”yes\”?>XML 增、删、改和查示例<dbGuest>XML 增、删、改和查示例<User>XML 增、删、改和查示例<Name>aaa</Name>XML 增、删、改和查示例<City>shanghai</City>XML 增、删、改和查示例<Email>aaa@263.net</Email>XML 增、删、改和查示例<Message>ok</Message>XML 增、删、改和查示例<STime>2004-07-12T00:00:00.0000000+08:00</STime>XML 增、删、改和查示例</User>XML 增、删、改和查示例<User>XML 增、删、改和查示例<Name>shaoazhd</Name>XML 增、删、改和查示例<City>beijing</City>XML 增、删、改和查示例<Email>sss@22.net</Email>XML 增、删、改和查示例<Message>afsa</Message>XML 增、删、改和查示例<STime>2004-7-1215:07:39</STime>XML 增、删、改和查示例</User>XML 增、删、改和查示例<User>XML 增、删、改和查示例<Name>Guset</Name>XML 增、删、改和查示例<City>上海</City>XML 增、删、改和查示例<Email>sfaf@22.net</Email>XML 增、删、改和查示例</User>XML 增、删、改和查示例<User>XML 增、删、改和查示例<Name>Guset</Name>XML 增、删、改和查示例<City>上海</City>XML 增、删、改和查示例<Email>ss@22.net</Email>XML 增、删、改和查示例</User>XML 增、删、改和查示例</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();}}}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 XML/RSS XML 增、删、改和查示例 https://www.u-9.cn/biancheng/xmlrss/97133.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务