XML解析

1.解析代码

 添加引用,

 using System.Xml.Linq;
 using System.Xml;
 using System.Xml.Serialization;

public class SerializerUtil<T> where T : class
   {
       public readonly string RootPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config"); //路径
       public const string FileName = "config.xml";//文件名
       public readonly XmlSerializer XmlSerializer = new XmlSerializer(typeof(T));
       private static DateTime? _changeTime;
       
   
    public bool CheckChanged() { if (_changeTime == null) { _changeTime = new FileInfo(Path.Combine(RootPath, FileName)).LastWriteTime; return true; } var lst = new FileInfo(Path.Combine(RootPath, FileName)).LastWriteTime; if (_changeTime != lst) { _changeTime = lst; return true; } return false; } public void Save(T data) { if (!Directory.Exists(RootPath)) Directory.CreateDirectory(RootPath); var filePath = Path.Combine(RootPath, FileName); using (var sw = new StreamWriter(filePath)) { XmlSerializer.Serialize(sw, data, new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty })); } } public T Read(string filename = "") { var file = string.IsNullOrEmpty(filename) ? FileName : filename + ".xml"; var filePath = Path.Combine(RootPath, file); if (!File.Exists(filePath)) return null; using (var sw = new StreamReader(filePath)) { return XmlSerializer.Deserialize(sw) as T; } } public string FilePath { get { return Path.Combine(RootPath, FileName); } } }

2.T

  [XmlRoot("Root")]
    public class GameIcon
    {
        [XmlAttribute("Attribute1")]
        public string Ver { get; set; }
        [XmlElement("Element1")]
        public Info Info1 { get; set; }
        [XmlElement("Element1")]
        public Info Info2 { get; set; }
    }

    public class Info {

        [XmlAttribute("width")]
        public string Width { get; set; }
        [XmlAttribute("height")]
        public string Height { get; set; }
        [XmlAttribute("count")]
        public string Count { get; set; }
    }

 

posted @ 2016-02-17 17:25  汪汪汪~~  阅读(222)  评论(0编辑  收藏  举报