从前,有一个神奇的东西叫做搞搞精灵

关于他,有一段历史。

哎呀!我去!写不下去了。

-。-以上玩笑

首先需求分析

TreeView显示两种频道 TypeA和TypeB

所以创建三个类 ChannelBase TypeA TypeB

然后每个频道有节目单

节目单也因频道不同而不同 分为两种

所以也是三个类

Programme ProgramA ProgramB

新建一个ChannelBase对象的list集合

load事件

判断快捷菜单用

判断然后给DataGridView设置数据源

频道父类:

A子类

B子类

节目父类

public class ChannelManager
{
public void Resolve(List<ChannelBase> list)
{
XmlDocument doc = new XmlDocument();
doc.Load("files/FullChannels.xml");
XmlNode root = doc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
if (item["channelType"].InnerText.Equals("TypeA"))
{
TypeA channel = new TypeA();
channel.Type = item["channelType"].InnerText;
channel.ChannelName = item["tvChannel"].InnerText;
channel.Path = item["path"].InnerText; List<ProgramA> proList = new List<ProgramA>();
XmlDocument doc2 = new XmlDocument();
doc2.Load(item["path"].InnerText);
XmlNode node = doc2.DocumentElement;
foreach (XmlNode key in node.ChildNodes[])
{
ProgramA p = new ProgramA();
p.Time = Convert.ToDateTime(key["playTime"].InnerText);
p.Meridien = key["meridien"].InnerText;
p.Name = key["programName"].InnerText;
p.Path = key["path"].InnerText; proList.Add(p);
}
channel.List = proList;
list.Add(channel);
}
else
{
TypeB channel = new TypeB();
channel.Type = item["channelType"].InnerText;
channel.ChannelName = item["tvChannel"].InnerText;
channel.Path = item["path"].InnerText; List<ProgramB> proList = new List<ProgramB>();
XmlDocument doc2 = new XmlDocument();
doc2.Load(item["path"].InnerText);
XmlNode node = doc2.DocumentElement;
foreach (XmlNode key in node.ChildNodes[])
{
ProgramB p = new ProgramB();
p.Time = Convert.ToDateTime(key["playTime"].InnerText);
p.Name = key["name"].InnerText;
p.Path = key["path"].InnerText; proList.Add(p);
}
channel.List = proList;
list.Add(channel);
} }
}
}

最后 核心的代码

然后 完成

灭顶之灾之网络电视精灵——S2 2.8的更多相关文章

  1. 网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档,视频项目

    小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心: ...

  2. 初识XML及简单工厂运用--网络电视精灵

    网络电视精灵 任务描述 1. 解析XML文件中的数据 三个简单的xml文件; <?xml version="1.0" encoding="utf-8" ? ...

  3. 继承,多态,集合,面向对象,XML文件解析,TreeView动态加载综合练习----->网络电视精灵项目练习、分析

    网络电视精灵 项目运行状态如图: 项目完成后的类: 首先,将程序分为二部分进行: 一:TreeView节点内容的设计及编写: 1.1遍写XML文件:管理(FullChannels.xml),A类电视台 ...

  4. S2---深入.NET平台和C#编程的完美总结

    1.NET简单解说 l 面向对象提升 OOP(Object Oriented  Programming)面向对象编程 AOP:(Aspache  Oriented Programming):面向切面编 ...

  5. .NET平台和C#编程的总结

    第一章   简单认识.NET框架    (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework ...

  6. 深入.NET平台和C#编程总结大全

    对于初学者的你,等到你把这个看完之后就更清楚地认知.NET和C#编程了,好了废话不多说,开始吧!                                                     ...

  7. 一个年轻的码农的一个C#项目

    话不多少,今天要写一个小项目.我们写项目要做好准备.我们要做项目分析.要知道用户需求,然后在根据需求来规划自己的项目.我们要用自己所学,做最好的程序.尽自己所能完成项目需求.精简代码! 我们今天要写的 ...

  8. 第八章xml学习

    1.ASP.NET和JSP的关系 ASP.NET 和JSP都是用来开发动态网站的技术,只不过ASP.NET是通过c#语言来操作的, 而JSP是通过Java语言来操作的. 2.为什么学习XML? 01. ...

  9. 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合

    这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...

随机推荐

  1. word转pdf字体格式变乱的问题

    完成word转pdf的功能之后,本地测试没问题,然后发布到服务器上,就遇到了字体变乱的问题,如下: 由于我本地发布后导出没有出现同样情况,而服务器和本地的最大区别在于字体库,于是,把服务器上关于需要用 ...

  2. std::ostringstream输出流详解

    一.简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中.ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓 ...

  3. jquery easy ui combox

    $(document).ready(function() { $.ajax({ type: 'POST', dataType: "json", url:'menu/getAll', ...

  4. Productivity Power Tools 的使用

    免费的精品: Productivity Power Tools 动画演示 Productivity Power Tools 是微软官方推出的 Visual Studio 扩展,被用以提高开发人员生产率 ...

  5. sp_change_users_login解决孤立用户问题

    孤立帐户,指的是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录. 孤立帐户的产生一般是一下两种: ...

  6. nodejs项目在webstorm里进行debug的设定

    菜单 > Run > Edit Configurations... 菜单 > Run > Debug... 菜单 > Run > Edit Configuratio ...

  7. Intel DPDK的一些参资料

    dpdk.org What it is Intel® DPDK is a set of libraries and drivers for fast packet processing on x86 ...

  8. linux 下 文件权限和文件主

    文件与文件夹的权限和所有者 1.chmod -R 755 file 777 含义与来源: 777含义:分别为:所有者.同组用户.其他用户 7的来源:文件有三种操作模式:读4.写2.执行1,分别值为42 ...

  9. ThinkPad E440 Ubuntu 13.1无线网卡 RTL8723BE 驱动解决办法总结

    方法一.在使用网线链接到情况下 第一步.执行下边到命令,即从github上下载驱动程序并安装 sudo apt-get install linux-headers-generic build-esse ...

  10. API接口验证

    一.前言 权限验证在开发中是经常遇到的,通常也是封装好的模块,如果我们是使用者,通常指需要一个标记特性或者配置一下就可以完成,但实际里面还是有许多东西值得我们去探究.有时候我们也会用一些开源的权限验证 ...