xml文档的增删改

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Xml;
 6 
 7 namespace Common
 8 {
 9     public class Xml
10     {
11         private XmlDocument xmlDoc;
12 
13         /// <summary>
14         /// xml文件名,调用次大类必须先设定xml文件名
15         /// </summary>
16         public string XmlName;
17 
18         /// <summary>
19         /// 读取xml文档
20         /// </summary>
21         /// <param name="XmlName">xml文档名</param>
22         private void LoadXml()
23         {
24             xmlDoc = new XmlDocument();
25             xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath(XmlName));
26         }
27 
28         /// <summary>
29         /// 增加xml文档的节点
30         /// </summary>
31         /// <param name="AddID">节点的name值</param>
32         /// <param name="ImageUrl">图片位置及其名字 例如:images/pic_04.gif</param>
33         /// <param name="Url">链接地址 例如:详细显示页.aspx?ID=36</param>
34         private void AddElement(string AddID,string ImageUrl,string Url)
35         {
36             LoadXml();
37             XmlNode xmldocSelect = xmlDoc.SelectSingleNode("slideshow");
38             XmlElement el = xmlDoc.CreateElement("photo"); //添加photo节点
39             el.SetAttribute("name", AddID); //添加photo节点的属性"name"
40 
41             XmlElement xesub1 = xmlDoc.CreateElement("image"); //添加image节点的里的节点
42             xesub1.InnerText = ImageUrl;//设置文本节点
43             el.AppendChild(xesub1);
44 
45             XmlElement xesub2 = xmlDoc.CreateElement("url");
46             xesub2.InnerText = Url;//设置文本节点
47             el.AppendChild(xesub2);
48 
49             xmldocSelect.AppendChild(el);
50             xmlDoc.Save(System.Web.HttpContext.Current.Server.MapPath(XmlName));
51         }
52 
53         /// <summary>
54         /// 修改xml文档
55         /// </summary>
56         /// <param name="ID">最新的name值</param>
57         /// <param name="UpdateID">所要修改节点的name值</param>
58         /// <param name="ImageUrl">图片位置及其名字 例如:images/pic_04.gif</param>
59         /// <param name="Url">链接地址 例如:详细显示页.aspx?ID=36</param>
60         private void UpdateXml(string ID, string UpdateID, string ImageUrl, string Url)
61         {
62             LoadXml();
63             XmlNodeList nodeList = xmlDoc.SelectSingleNode("slideshow").ChildNodes;//获取slideshow节点的所有子节点
64             foreach (XmlNode xn in nodeList)//遍历所有子节点
65             {
66                 XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
67                 if (xe.GetAttribute("name") == UpdateID)//如果name属性值为“UpdateID”
68                 {
69                     xe.SetAttribute("name", ID);
70                     xe.ChildNodes[0].Value = ImageUrl;
71                     xe.ChildNodes[1].Value = Url;
72                     break;
73                 }
74             }
75             xmlDoc.Save(System.Web.HttpContext.Current.Server.MapPath(XmlName));//保存xml文档
76         }
77 
78         /// <summary>
79         /// 删除xml文档的节点
80         /// </summary>
81         /// <param name="DeleteID">所要删除节点的name值</param>
82         private void deleteNode(string DeleteID)
83         {
84             LoadXml();
85             XmlNodeList xnl = xmlDoc.SelectSingleNode("slideshow").ChildNodes;
86             foreach (XmlNode xn in xnl)
87             {
88                 XmlElement xe = (XmlElement)xn;
89                 if (xe.GetAttribute("name") == DeleteID)
90                 {
91                     xe.RemoveAll();//删除该节点的全部内容
92                     break;
93                 }
94             }
95             xmlDoc.Save(System.Web.HttpContext.Current.Server.MapPath(XmlName));//保存xml文档
96         }
97     }
98 }
原文地址:https://www.cnblogs.com/Setme/p/2536436.html