灭顶之灾之网络电视精灵——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等) ...
随机推荐
- C++宽窄字符串转换
首先,贴出我给出的解决方案: http://files.cnblogs.com/xuejianhui/utils.rar 再则,贴出网上最常见的例子: #include <string> ...
- There is already an open DataReader associated with this Command which must be closed first." exception in Entity Framework
Fixing the "There is already an open DataReader associated with this Command which must be clos ...
- yum升级CentOS 6.5 kernel至3.10.52
we will use ELRepo to install kernel 1. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2 ...
- android四大组件之ContentProvider(一)
ContentProvider学习笔记 1. ContentProvider基本概念 ContentProvider向我们提供了我们在应用程序之间共享数据的一种机制,虽然采用文件和SharedPref ...
- Morphia 学习一 注解
http://blog.csdn.net/liumm0000/article/details/7535858 生命周期方法注解(delete没有生命周期事件)@PrePersist save之前被调用 ...
- Linux重定向相关(转载帖,供自己cookbook)
Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. Linux默 ...
- SQL 创建一个只读账户 .
1.进入sqlserver management studio 2.选择安全性->登录名->右键新建登录名 3.在常规里输入用户名和密码 4.在"用户映射"里“映射到此 ...
- 三线程连续打印ABC
package test5; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Reentr ...
- WeX5之xid相关API
WeX5针对xid提供了以下js api: 1.根据xid获取id:this.getIDByXID(xid): 2.根据xid获取HTML节点:this.getElementByXid(xid),此a ...
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...