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;
        }
    }
}


 

 

posted @ 2013-05-10 20:33  坚固66  阅读(146)  评论(0编辑  收藏  举报