XML中增、删、改的示例
这篇文章主要介绍了XML中增、删、改的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了磐安免费建站欢迎大家使用!
样本XML文件(bookstore.xml)
Oberon's Legacy Corets, Eva 5.95
1、往
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("E:\\bookstore.xml"); XmlNode root = xmlDoc.SelectSingleNode("bookstore");//查找XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个 节点 xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性 xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性 XmlElement xesub1 = xmlDoc.CreateElement("title"); xesub1.InnerText = "CS从入门到精通";//设置文本节点 xe1.AppendChild(xesub1);//添加到 节点中 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);//添加到 节点中 xmlDoc.Save("E:\\bookstore.xml");
修改后的xml文件为:
Oberon's Legacy Corets, Eva 5.95 CS从入门到精通 候捷 58.3
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("E:\\bookstore.xml"); 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;//转换类型 //title、author、price都会在xe2.Name中取到 if (xe2.Name == "author")//如果找到 { xe2.InnerText = "亚胜";//则修改 break;//找到退出来就可以了 } } break; } } xmlDoc.Save("bookstore.xml");//保存。
小注:
1、去掉修改节点代码中的两个break后,该代码可以实现遍历修改整个xml文档的功能,由此可见foreach对于操作XML文件,可以进行遍历的修改,但不能进行遍历的增加与删除。
2、注意对于xml文件操作中for与foreach的对应转化:关于XML遍历新增节点,修改属性小例
修改后的xml文件为:
Oberon's Legacy Corets, Eva 5.95 CS从入门到精通 亚胜 58.3
3、删除
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("E:\\bookstore.xml"); 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") == "李赞红") { //RemoveAll会移除指定节点下所有信息,但会保留该节点 xe.RemoveAll();//删除该节点的全部内容 } } xmlDoc.Save("E:\\bookstore.xml");小注:在操作XML文件的时候使用了foreach,故删除一个节点的全部内容后,便会跳出foreach循环。 修改后的xml文件为:4、显示所有数据。 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("E:\\bookstore.xml"); XmlNode xn = xmlDoc.SelectSingleNode("bookstore"); XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; MessageBox.Show(xe.GetAttribute("genre"));//显示属性值 MessageBox.Show(xe.GetAttribute("ISBN")); XmlNodeList xnf1 = xe.ChildNodes; foreach (XmlNode xn2 in xnf1) { MessageBox.Show(xn2.InnerText);//显示子节点点文本 } } Oberon's Legacy Corets, Eva 5.95
感谢你能够认真阅读完这篇文章,希望小编分享的“XML中增、删、改的示例”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
当前题目:XML中增、删、改的示例
链接地址:http://azwzsj.com/article/gehgid.html