网络电视精灵 完整版
来源:互联网 发布:mac拳皇13摇杆按键设置 编辑:程序博客网 时间:2024/04/27 21:56
namespace _08_电视精灵{ public class ChannelFactory { public static ChannelBase CreateChannel(string type) { ChannelBase channel = null; switch (type) { case "TypeA": channel=new TypeA(); break; case "TypeB": channel = new TypeB(); break; } return channel; } }}namespace _08_电视精灵{ public partial class FrmTV : Form { public FrmTV() { InitializeComponent(); } public ChannelManager manager = new ChannelManager(); private void FrmTV_Load(object sender, EventArgs e) { TreeNode nodeFirstLevel = new TreeNode("我的电视台"); TreeNode root = new TreeNode( "所有电视台"); //访问 ChannelManager 中的 FullChannels 集合 manager.ReadXmlToList(); List<ChannelBase> list = manager.FullChannels1; int num = 0; foreach (ChannelBase item in list) { TreeNode node = new TreeNode(); node.Text = item.ChannelName; node.Tag = num; nodeFirstLevel.Nodes.Add(node); root.Nodes.Add(node); num++; } this.tvShow.Nodes.Add(nodeFirstLevel); this.tvShow.Nodes.Add(root); } private void tvShow_AfterSelect(object sender, TreeViewEventArgs e) { List<ChannelBase> list = manager.FullChannels1; ChannelBase ba = list[Convert.ToInt16(tvShow.SelectedNode.Tag)]; ba.Fetch(); dataGridView1.DataSource = ba.tvList; } }}namespace _08_电视精灵{ //相当于一个 工具类 管理所有频道 public class ChannelManager { // 01. 定义一个泛型 private List<ChannelBase> FullChannels = new List<ChannelBase>(); public List<ChannelBase> FullChannels1 { get { return FullChannels; } set { FullChannels = value; } } public ChannelManager() { FullChannels = new List<ChannelBase>(); } // 01. 定义一个方法 将XML数据填充到泛型中 public void ReadXmlToList() { XmlDocument doc = new XmlDocument(); doc.Load("FullChannels.xml"); XmlNode root = doc.DocumentElement; foreach (XmlNode item in root.ChildNodes) { //解析出当前的频道类型 string type = item["channelType"].InnerText; ChannelBase channel = ChannelFactory.CreateChannel(type); // 每一个item 是一个频道对象 channel.ChannelName = item["tvChannel"].InnerText; channel.ChannelPath = item["path"].InnerText; FullChannels.Add(channel); } } }}namespace _08_电视精灵{ //频道父类 //三个属性 一个方法 public abstract class ChannelBase { public string Type { get; set; } public string ChannelName { get; set; } public string ChannelPath { get; set; } //提供一个用于保存该频道下的所有节目单集合 public List<TVProgram> tvList = new List<TVProgram>(); //Fetch ()方法 解析Path 对应的频道 xml 文件,形成内存中的泛型集合 public abstract void Fetch(); }}namespace _08_电视精灵{ //和files/xml文件对应 //这些类 是根据 XML 文件的属性提炼出来的 public class TVProgram { //播出时间 public DateTime PlayTime { get; set; } //早间档 午间档 晚间档 public string ShiDuan { get; set; } //节目名称 public string Name { get; set; } //视频路径 public string Path { get; set; } }}namespace _08_电视精灵{ //北京电视台.Xml public class TypeA:ChannelBase { public override void Fetch() { XmlDocument doc = new XmlDocument(); doc.Load("北京电视台.xml"); XmlNode root = doc.DocumentElement; //<playTime>2013-9-29 06:02</playTime> <!--节目播出时间--> //<meridien>早间档</meridien> <!--时段--> //<programName>重播:国际双行线</programName> <!--节目名称--> //<path>c:\a.wma</path> ////每一个 item 是一个频道 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.ShiDuan = item2["meridien"].InnerText; tp.Path = item2["path"].InnerText; tp.Name = item2["programName"].InnerText; //把解析出来的 放到 集合里 tvList.Add(tp); } } } } }}namespace _08_电视精灵{ //凤凰电视台.Xml public class TypeB:ChannelBase { public override void Fetch() { XmlDocument doc = new XmlDocument(); doc.Load("凤凰卫视.xml"); XmlNode root = doc.DocumentElement; //每一个 item 是一个频道 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.ShiDuan = item2["ShiDuan"].InnerText; tp.Path = item2["path"].InnerText; tp.Name = item2["name"].InnerText; //把解析出来的 放到 集合里 tvList.Add(tp); } } } } }}
0 0
- 网络电视精灵 完整版
- 网络电视精灵
- 网络电视精灵
- 电视网络精灵
- 网络电视精灵
- 网络电视精灵
- 网络电视精灵
- day 08 网络电视精灵
- C#网络电视精灵系统
- 网络电视精灵 2003.08.03 官方
- 网络电视精灵 的一半代码
- 电视的色彩你永远不动--网络电视精灵
- 网络电视
- 网络精灵
- 网络精灵
- 网络电视全编译程序
- 网络电视简介
- IPTV(网络电视)
- logistic回归
- 汇编指令对应机器码表
- bzoj1618
- C++中的继承
- 第一章、Activiti认识
- 网络电视精灵 完整版
- Java网络编程由浅入深四 编写自己的HTTP服务器
- Java调用win32API与DLL的使用
- mybatis与spring整合事务管理
- 《dead line》摘抄
- PAT 1120
- HOOK 几种实现方式区别
- 原型模式
- 牛的旅行(标程)