1 using System;
2 using System.Data;
3 using System.Configuration;
4 using System.Web;
5 using System.Web.Security;
6 using System.Web.UI;
7 using System.Web.UI.WebControls;
8 using System.Web.UI.WebControls.WebParts;
9 using System.Web.UI.HtmlControls;
10 using System.Xml;
11
12 namespace PuTianCheng
13 {
14 /// <summary>
15 /// XmlHelper 的摘要说明
16 /// </summary>
17 public class XmlHelper
18 {
19 public XmlHelper()
20 {
21 }
22
23 /// <summary>
24 /// 读取数据
25 /// </summary>
26 /// <param name="path">路径</param>
27 /// <param name="node">节点</param>
28 /// <param name="attribute">属性名,非空时返回该属性值,否则返回串联值</param>
29 /// <returns>string</returns>
30 /**************************************************
31 * 使用示列:
32 * XmlHelper.Read(path, "/Node", "")
33 * XmlHelper.Read(path, "/Node/Element[@Attribute='Name']", "Attribute")
34 ************************************************/
35 public static string Read(string path, string node, string attribute)
36 {
37 string value = "";
38 try
39 {
40 XmlDocument doc = new XmlDocument();
41 doc.Load(path);
42 XmlNode xn = doc.SelectSingleNode(node);
43 value = (attribute.Equals("") ? xn.InnerText : xn.Attributes[attribute].Value);
44 }
45 catch { }
46 return value;
47 }
48
49 /// <summary>
50 /// 插入数据
51 /// </summary>
52 /// <param name="path">路径</param>
53 /// <param name="node">节点</param>
54 /// <param name="element">元素名,非空时插入新元素,否则在该元素中插入属性</param>
55 /// <param name="attribute">属性名,非空时插入该元素属性值,否则插入元素值</param>
56 /// <param name="value">值</param>
57 /// <returns></returns>
58 /**************************************************
59 * 使用示列:
60 * XmlHelper.Insert(path, "/Node", "Element", "", "Value")
61 * XmlHelper.Insert(path, "/Node", "Element", "Attribute", "Value")
62 * XmlHelper.Insert(path, "/Node", "", "Attribute", "Value")
63 ************************************************/
64 public static void Insert(string path, string node, string element, string attribute, string value)
65 {
66 try
67 {
68 XmlDocument doc = new XmlDocument();
69 doc.Load(path);
70 XmlNode xn = doc.SelectSingleNode(node);
71 if (element.Equals(""))
72 {
73 if (!attribute.Equals(""))
74 {
75 XmlElement xe = (XmlElement)xn;
76 xe.SetAttribute(attribute, value);
77 }
78 }
79 else
80 {
81 XmlElement xe = doc.CreateElement(element);
82 if (attribute.Equals(""))
83 xe.InnerText = value;
84 else
85 xe.SetAttribute(attribute, value);
86 xn.AppendChild(xe);
87 }
88 doc.Save(path);
89 }
90 catch { }
91 }
92
93 /// <summary>
94 /// 修改数据
95 /// </summary>
96 /// <param name="path">路径</param>
97 /// <param name="node">节点</param>
98 /// <param name="attribute">属性名,非空时修改该节点属性值,否则修改节点值</param>
99 /// <param name="value">值</param>
100 /// <returns></returns>
101 /**************************************************
102 * 使用示列:
103 * XmlHelper.Insert(path, "/Node", "", "Value")
104 * XmlHelper.Insert(path, "/Node", "Attribute", "Value")
105 ************************************************/
106 public static void Update(string path, string node, string attribute, string value)
107 {
108 try
109 {
110 XmlDocument doc = new XmlDocument();
111 doc.Load(path);
112 XmlNode xn = doc.SelectSingleNode(node);
113 XmlElement xe = (XmlElement)xn;
114 if (attribute.Equals(""))
115 xe.InnerText = value;
116 else
117 xe.SetAttribute(attribute, value);
118 doc.Save(path);
119 }
120 catch { }
121 }
122
123 /// <summary>
124 /// 删除数据
125 /// </summary>
126 /// <param name="path">路径</param>
127 /// <param name="node">节点</param>
128 /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param>
129 /// <param name="value">值</param>
130 /// <returns></returns>
131 /**************************************************
132 * 使用示列:
133 * XmlHelper.Delete(path, "/Node", "")
134 * XmlHelper.Delete(path, "/Node", "Attribute")
135 ************************************************/
136 public static void Delete(string path, string node, string attribute)
137 {
138 try
139 {
140 XmlDocument doc = new XmlDocument();
141 doc.Load(path);
142 XmlNode xn = doc.SelectSingleNode(node);
143 XmlElement xe = (XmlElement)xn;
144 if (attribute.Equals(""))
145 xn.ParentNode.RemoveChild(xn);
146 else
147 xe.RemoveAttribute(attribute);
148 doc.Save(path);
149 }
150 catch { }
151 }
152
153 /// <summary>
154 /// 获取数据集合
155 /// </summary>
156 /// <param name="path">路径</param>
157 /// <param name="node">节点</param>
158 /// <param name="value">值</param>
159 /// <returns>Dictionary集合</returns>
160 public static Dictionary<int, List<string>> ReadingXml(string path,string node)
161 {
162 XmlDocument xmlDoc = new XmlDocument();
163 xmlDoc.LoadXml(path);
164 XmlNodeList nodeList = xmlDoc.SelectSingleNode(node).ChildNodes;//item 节点
165
166 List<string> list = null;
167 Dictionary<int, List<string>> dic = new Dictionary<int, List<string>>();
168 int key = 0;
169 //遍历所有子节点
170 foreach (XmlNode xn in nodeList)
171 {
172 XmlElement xe = (XmlElement)xn; //item
173 XmlNodeList subList = xe.ChildNodes;//item的子节点
174
175 list = new List<string>();
176 foreach (XmlNode xmlNode in subList)
177 {
178 //获取数据
179 list.Add(xmlNode.InnerText);
180 }
181 dic.Add(key, list);
182 key++;
183 }
184 return dic;
185 }
186 }
187 }