using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace 网络电视
{
public class ChannelA : ChannelBase
{
public override void Fetch()
{
XmlDocument doc = new XmlDocument();
doc.Load(Path);
XmlNode root = doc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
//一个Item
if (item.Name == "tvProgramTable")
{
foreach (XmlNode child in item.ChildNodes)
{
//一个child是一个节目单对象
TvProgram tv = new TvProgram();
tv.PlayTime = Convert.ToDateTime(child["playTime"].InnerText);
tv.Median = child["meridien"].InnerText;
tv.ProgramName = child["programName"].InnerText;
tv.FilePath = child["path"].InnerText;
ProgramList.Add(tv);
}
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace 网络电视
{
public class ChannelB:ChannelBase
{
public override void Fetch()
{
XmlDocument doc = new XmlDocument();
doc.Load(Path);
XmlNode root = doc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
foreach (XmlNode child in item.ChildNodes)
{
TvProgram tp = new TvProgram();
tp.PlayTime = Convert.ToDateTime(child["playTime"].InnerText);
tp.ProgramName = child["name"].InnerText;
tp.FilePath = child["path"].InnerText;
ProgramList.Add(tp);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace 网络电视
{
public abstract class ChannelBase
{
public ChannelBase()
{
programList = new List<TvProgram>();
}
#region 属性
private string channelName;
public string ChannelName
{
get { return channelName; }
set { channelName = value; }
}
private string path;
public string Path
{
get { return path; }
set { path = value; }
}
private List<TvProgram> programList;
public List<TvProgram> ProgramList
{
get { return programList; }
set { this.programList = value; }
}
#endregion
//Fetch,读取频道的xml文件
public abstract void Fetch();
}
}
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 网络电视
{
public class ChannelFactory
{
public static ChannelBase CreatChannel(string type)
{
ChannelBase channel = null;
switch (type)
{
case "TypeA":
channel = new ChannelA();
break;
case "TypeB":
channel = new ChannelB();
break;
}
return channel;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace 网络电视
{
public class ChannelManager
{
private Dictionary<string, ChannelBase> fullChannels = null;
public Dictionary<string, ChannelBase> FullChannels
{
get { return fullChannels; }
set { fullChannels = value; }
}
public ChannelManager()
{
fullChannels=new Dictionary<string, ChannelBase>();
}
public void ChangeXmlToList()
{
XmlDocument doc=new XmlDocument();
doc.Load("files/FullChannels.xml");
XmlNode root = doc.DocumentElement;
foreach (XmlNode item in root.ChildNodes)
{
string type = item["channelType"].InnerText;
ChannelBase channel = ChannelFactory.CreatChannel(type);
channel.ChannelName = item["tvChannel"].InnerText;
channel.Path = item["path"].InnerText;
fullChannels.Add(channel.ChannelName, channel);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 网络电视
{
public class TvProgram
{
private DateTime playTime;
public DateTime PlayTime
{
get { return playTime; }
set { playTime = value; }
}
/// <summary>
/// 时段
/// </summary>
private string median;
public string Median
{
get { return median; }
set { median = value; }
}
private string programName;
public string ProgramName
{
get { return programName; }
set { programName = value; }
}
private string filePath;
public string FilePath
{
get { return filePath; }
set { filePath = value; }
}
}
}
更多推荐
网络精灵
发布评论