网络电视精灵

 public class TypeB : ChannelBase
    {
        public override void Jx()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("files/凤凰卫视.xml");
            XmlNode root = doc.DocumentElement;
            foreach (XmlNode item in root.ChildNodes)
            {
                if (item.Name.Equals("ProgramList"))
                {
                    foreach (XmlNode item2 in item.ChildNodes)
                    {
                        TvProgram Tp = new TvProgram();
                        Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText);
                        Tp.Path = item2["path"].InnerText;
                        Tp.ProgramName = item2["name"].InnerText;
                        ProgramList1.Add(Tp);
                    }
                }
            }

        }
    }

}

    /// <summary>
    /// 频道管理类
    /// </summary>
   public class ChannelManager
    {
        private List<ChannelBase> list = new List<ChannelBase>();

        public List<ChannelBase> List
        {
            get { return list; }
            set { list = value; }
        }

       public void ResolveChannels() 
       {
             //1.1 我将解析好的Data中转存放到泛型集合
           //List<自定义类>

           XmlDocument doc = new XmlDocument();
           doc.Load("files/FullChannels.xml");
           //找根节点  ()
           XmlNode root=doc.DocumentElement;
           foreach (XmlNode item in root.ChildNodes)
           {
               //一个item代表什么  Channel
                ChannelBase channel = Factory.CB(item["channelType"].InnerText); 
               channel.ChannelType = item["channelType"].InnerText;
               channel.ChannelName = item["tvChannel"].InnerText;
               channel.Path = item["path"].InnerText;

               //归属到一个集合中
               list.Add(channel);
           }
       }
       
    }
}
   /// <summary>
    /// 频道父类
    /// </summary>
   public abstract class ChannelBase
   {
       //频道类型
       public string ChannelType { get; set; }

       //channelName
        public string ChannelName { get; set; }
       //path
        public string Path { get; set; }
       //节目列表
        private List<TvProgram> ProgramList = new List<TvProgram>();

        public List<TvProgram> ProgramList1
        {
            get { return ProgramList; }
            set { ProgramList = value; }
        }
        public abstract void Jx();

    }
}
public  class Factory
    {
       //创建一个工厂类
       public static ChannelBase CB(string type)
       {
           ChannelBase types = null;
           switch(type)
           {
               case"TypeA":
                   types = new TypeA();
                   break;
               case"TypeB":
                   types = new TypeB();
                   break;
           }

           return types;
       }
    }
}
   static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FrmMain());
        }
    }
}
    /// <summary>
    /// 电视节目类
    /// </summary>
    public class TvProgram
    {
        //节目名称
        public string ProgramName { get; set; }
        //时段
        public string Meridien { get; set; }
        //节目路径
        public string Path { get; set; }
        //时间
        public DateTime PlayTime { get; set; }
    }
}
 public class TypeA:ChannelBase
    {
       public override void Jx()
       {
           XmlDocument doc = new XmlDocument();
           doc.Load("files/北京电视台.xml");
           XmlNode root = doc.DocumentElement;
           foreach (XmlNode item in root.ChildNodes)
           {
               if (item.Name.Equals("tvProgramTable"))
               {
                   foreach (XmlNode item2 in item.ChildNodes)
                   {
                       TvProgram Tp = new TvProgram();
                       Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText);
                       Tp.Meridien = item2["meridien"].InnerText;
                       Tp.Path = item2["path"].InnerText;
                       Tp.ProgramName = item2["programName"].InnerText;
                       ProgramList1.Add(Tp);
                   }
               }
           }

       }
    }
}
原文地址:https://www.cnblogs.com/cuntouyixiaohuo/p/5845426.html