灭顶之灾之网络电视精灵——S2 2.8

从前,有一个神奇的东西叫做搞搞精灵
关于他,有一段历史。
哎呀!我去!写不下去了。
-。-以上玩笑

首先需求分析
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的更多相关文章
- 网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档,视频项目
小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心: ...
- 初识XML及简单工厂运用--网络电视精灵
网络电视精灵 任务描述 1. 解析XML文件中的数据 三个简单的xml文件; <?xml version="1.0" encoding="utf-8" ? ...
- 继承,多态,集合,面向对象,XML文件解析,TreeView动态加载综合练习----->网络电视精灵项目练习、分析
网络电视精灵 项目运行状态如图: 项目完成后的类: 首先,将程序分为二部分进行: 一:TreeView节点内容的设计及编写: 1.1遍写XML文件:管理(FullChannels.xml),A类电视台 ...
- S2---深入.NET平台和C#编程的完美总结
1.NET简单解说 l 面向对象提升 OOP(Object Oriented Programming)面向对象编程 AOP:(Aspache Oriented Programming):面向切面编 ...
- .NET平台和C#编程的总结
第一章 简单认识.NET框架 (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework ...
- 深入.NET平台和C#编程总结大全
对于初学者的你,等到你把这个看完之后就更清楚地认知.NET和C#编程了,好了废话不多说,开始吧! ...
- 一个年轻的码农的一个C#项目
话不多少,今天要写一个小项目.我们写项目要做好准备.我们要做项目分析.要知道用户需求,然后在根据需求来规划自己的项目.我们要用自己所学,做最好的程序.尽自己所能完成项目需求.精简代码! 我们今天要写的 ...
- 第八章xml学习
1.ASP.NET和JSP的关系 ASP.NET 和JSP都是用来开发动态网站的技术,只不过ASP.NET是通过c#语言来操作的, 而JSP是通过Java语言来操作的. 2.为什么学习XML? 01. ...
- 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
随机推荐
- mesos INSTALL
$ git clone https://github.com/mesosphere/playa-mesos $ cd playa-mesos $ vagrant up --provision
- ASP.NET同页面内【用户控件与父页面】以及【用户控件与用户控件】之间方法调用
在用户控件中,获取父页面的方法 1:方法没有参数(userInfor()) string userInfor = Convert.ToString(this.Page.GetType().GetMet ...
- Nginx日志导入到Hive0.13.1,同步Hbase0.96.2,设置RowKey为autoincrement(ID自增长)
---------------------------------------- 博文作者:迦壹 博客地址:Nginx日志导入到Hive,同步Hbase,设置RowKey为autoincrement( ...
- javascript中的闭包解析
学习javaScript已经有一段时间了,在这段时间里,已经感受到了JavaScript的种种魅力,这是一门神奇的语言,同时也是一门正在逐步完善的语言,相信在大家的逐步修改中,这门语言会逐步的完善下去 ...
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- Spring-MVC开发之全局异常捕获全面解读
异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有 ...
- Difference between applicationContext.xml and spring-servlet.xml in Spring Framework
Question: Are applicationContext.xml and spring-servlet.xml related anyhow in Spring Framework? Will ...
- 使用springMVC实现文件上传和下载之环境配置与上传
最近的项目中用到了文件的上传和下载功能,任务分配给了其他的同时完成.如今项目结束告一段落,我觉着这个功能比较重要,因此特意把它提取出来自己进行了尝试. 一. 基础配置: maven导包及配置pom.x ...
- flex loaderInfo为null在creationComplete事件中
原文: http://yunzhongxia.iteye.com/blog/1152670 Flex4中application变为FlexGlobals.topLevelApplication,很 ...
- 链地址法实现HashMap
前注:本文介绍的HashMap并非Java类库的实现.而是根据哈希表知识的一个实现. 上文介绍了开放地址法实现HashTable,它的缺点是对hashCode映射为地址后如果出现重复地址,则会占用其他 ...