读取xml 文件

来源:互联网 发布:科比06赛季场均数据 编辑:程序博客网 时间:2024/04/29 11:03

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
using System.Xml;
using System.IO;
using System.Reflection;

namespace listview
{
    class config
    {
    
        private Color _backColor; 
       
        private infoArr info = new infoArr();
        public Color BackColor
        {
            get {return _backColor ;}
            set { _backColor = value; }

        }
        public infoArr Info
        {
            get { return info; }
            set { info = value;}
        }
        public void LoadFromXmlFile()
        {
            XmlTextReader reader;//只能向前读取
            if (File.Exists("set.xml"))//先读取外部的xml
            {
                reader = new XmlTextReader("set.xml");
            }
            else// 从嵌入资源里读取
            {
                Assembly am = Assembly.GetExecutingAssembly();
                Stream sm = am.GetManifestResourceStream("listview.set.xml");
                reader = new XmlTextReader(sm);
            }
            string key = "";
            try
            {
                while (reader.Read())
                    if (reader.NodeType == XmlNodeType.Element)// 成对的括号标记的 都是element
                    {
                        if (reader.Name == "ID")
                        {
                            key = reader.ReadElementString().Trim();
                            info.Add(key, "");//重载版本的add
                        }
                        else if (reader.Name == "color")// 感叹索引器的作用
                        {
                            info[key] = reader.ReadElementString().Trim();
                        }
                    }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        public void SaveToXmlFile()
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml("<set></set>");// 指定的xml加载进doc
            XmlNode root = doc.SelectSingleNode("set");
            // 写入信息
            for (int i = 0; i < info.Length; i++)
            {
                XmlElement xelType = doc.CreateElement("Type");// 每个信息都在type 里

                XmlElement xelID = doc.CreateElement("ID");
                xelID.InnerText = ((setinfo)Info[i]).GetIdStr();
                xelType.AppendChild(xelID);
                XmlElement xelColor = doc.CreateElement("color");
                xelColor.InnerText = ((setinfo)Info[i]).GetIdStr();
                xelType.AppendChild(xelColor);
                root.AppendChild(xelType);

            }
            doc.Save("set.xml");;// 没有写全路径名 意味着是跟exe 文件在一个目录下的

        }


    }
}
////////////////////////set.xml

<set> 

<Type>

    <ID>00100001111111000110</ID>
    <color>-122322</color>

  </Type>
  <Type>

    <ID>00011110000010011111</ID>
    <color>-23232</color>

  </Type>
  <Type>

    <ID>00001111111000100110</ID>
    <color>65443</color>

  </Type>
 
</set>

///YINGYONG

 bool[] arr = new bool[20];
        private config cf = new config();

 cf.LoadFromXmlFile();
            infoArr info =cf.Info;
            ListViewItem myItem = new ListViewItem();
            for (int i = 0; i < info.Length; i++)
            {
                myItem = listView1.Items.Add(info[i].GetIdStr());
                myItem.SubItems.Add(info[i].GetColorStr());
            }

原创粉丝点击