怎么把数据存在XML文件里,又怎么从XML里取数据  
    请高手指点下

解决方案 »

  1.   

    using System;   
    using System.Collections.Generic;   
    using System.Linq;   
    using System.Text;   
    using System.Xml.Serialization;   
    using System.IO;   
      
    namespace RegexActivator   
    {   
        public class ExtendMethods   
        {   
            public static void Serial<T>(T[] items, string path)   
            {   
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]));   
                TextWriter writer = new StreamWriter(path);   
                try  
                {   
                    xmlSerializer.Serialize(writer, items);   
                }   
                finally  
                {   
                    writer.Close();   
                }   
            }   
      
            public static T[] Deserial<T>(string path)   
            {   
                if (!File.Exists(path)) return new T[0];   
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]));   
                FileStream fs = new FileStream(path, FileMode.Open);   
                T[] items;   
                try  
                {   
                    items = (T[])xmlSerializer.Deserialize(fs);   
                }   
                finally  
                {   
                    fs.Close();   
                }   
                return items;   
            }   
        }   
    }  
      

  2.   

    http://blog.csdn.net/wuyazhe/archive/2010/07/30/5775666.aspx
      

  3.   


    在VS2008中增加了LinQ的概念,使用LinQ读写XML比较方便,下面通过一个简单实例说明用法。
    一、定义一个简单的XML文件
    <?xml version="1.0" encoding="utf-8"?>
    <Paths>
    <OutPath>
        <Path>D:\Downloads\</Path>
    </OutPath>
    </Paths>
    二、读取OutPath中的Path节点的值
                    var vFile = this.MyDataPath() + "MySet.xml";   // xml文件的路径
                    XDocument xd = XDocument.Load(vFile);
                    var src = from m in xd.Descendants("OutPath")
                              select m.Element("Path").Value;
                    int i = 0;
                    foreach (var p in src)
                    {
                        v导出路径 = p;
                        i++;
                        if (i == 1) break;
                    }
                    if (v导出路径 == "")
                    {
                        v导出路径 = this.MyDataPath();
                    }
    三、写入指定节点的值到XML文件中
                        var vFile = this.MyDataPath() + "MySet.xml";
                        XDocument xd = XDocument.Load(vFile);
                        xd.Element("Paths").Element("OutPath").Element("Path").Value = v导出路径;
                        xd.Save(vFile);
      

  4.   

    操作XML
    dataset.readxml
    dataset.writexml
    对象序列化和反序列化
    public static void SaveXml(string filePath, object obj, System.Type type)
      {
      using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
      {
      System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(type);
      xs.Serialize(writer, obj);
      writer.Close();
      }
      }
    XML 操作类
    LINQ TO XML