Xml读取和写入以及新建
有时候要用到Xml的读取和写入,甚至有时候需要新建一个Xml,但是好长时间不用这东西,都忘了,所以就写了一个类库,想用的时候直接拿过来用就OK了
下面是代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace Xmlleiku { public class Xmllei { public static string xmlpath = string.Empty; /// <summary> /// 初始化xml的物理地址 /// </summary> /// <param name="path">物理地址</param> public Xmllei(string path) { xmlpath = path; } /// <summary> /// 读取xml中的内容 /// </summary> /// <param name="element">节点的名字</param> public Dictionary<int, string[]> Reader(string element) { XmlDocument xodc = new XmlDocument(); xodc.Load(xmlpath); XmlNodeList lis = xodc.GetElementsByTagName(element); Dictionary<int, string[]> dic = new Dictionary<int, string[]>(); int j = 0; foreach (XmlNode item in lis) { string[] a = new string[item.ChildNodes.Count]; for (int i = 0; i < item.ChildNodes.Count; i++) { a[i] = item.ChildNodes.Item(i).InnerText; } dic.Add(j++, a); } return dic; } /// <summary> /// 写入已有的Xml文档 /// </summary> /// <param name="element">对应的标签组</param> /// <param name="meirong">与标签对应的内容</param> /// <returns></returns> public int Write(string[] element, List<string[]> meirong) { int j=0; try { XmlDocument xodc = new XmlDocument(); xodc.Load(xmlpath); foreach (string[] item1 in meirong) { int i = 1; XmlElement a = xodc.CreateElement(element[0]); foreach (string item2 in item1) { XmlElement b = xodc.CreateElement(element[i++]); b.AppendChild(xodc.CreateTextNode(item2)); a.AppendChild(b); } j++; xodc.DocumentElement.AppendChild(a); xodc.Save(xmlpath); } return j; } catch { return 0; } } /// <summary> /// 创建一个新的Xml文档 /// </summary> /// <param name="element">包含Xml文档的根目录的标签组</param> /// <param name="meirong">内容数组</param> /// <returns></returns> public int Create(string[] element,List<string[]> meirong) { int j = 0; XmlWriterSettings sttingsw = new XmlWriterSettings(); sttingsw.Encoding = System.Text.Encoding.UTF8; sttingsw.Indent = true; using (XmlWriter writer = XmlWriter.Create(xmlpath)) { writer.WriteStartDocument(); writer.WriteStartElement(element[0]); foreach (string[] item1 in meirong) { int i = 2; writer.WriteStartElement(element[1]); foreach (string item2 in item1) { writer.WriteStartElement(element[i++]); writer.WriteString(item2); writer.WriteEndElement(); } writer.WriteEndElement(); j++; } writer.WriteEndElement(); writer.WriteEndDocument(); } return j; } } }