protected override LiveArgs AnalysisData(System.Xml.XmlReader reader) { var result = new LiveArgs(Type.CreateString()); result.Channels = new List <LiveChannelInfo>(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "section") { var liveInfo = new LiveChannelInfo(Type); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement) { var nodeName = reader.Name; reader.Read(); switch (nodeName) { case "channel_id": liveInfo.Id = int.Parse(reader.Value); break; case "start_time": liveInfo.StartTime = DateTime.Parse(reader.Value); break; case "end_time": liveInfo.EndTime = DateTime.Parse(reader.Value); break; case "title": if (string.IsNullOrEmpty(liveInfo.NowPlay)) { liveInfo.NowPlay = reader.Value; } else if (string.IsNullOrEmpty(liveInfo.Title)) { liveInfo.Title = reader.Value; } break; case "image": if (string.IsNullOrEmpty(liveInfo.ImageUri)) { liveInfo.ImageUri = reader.Value; } break; default: break; } } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "section") { if (DateTime.Now <= liveInfo.EndTime && liveInfo.Id > 0) { result.Channels.Add(liveInfo); } break; } } } } return(result); }
protected override LiveArgs AnalysisData(System.Xml.XmlReader reader) { var result = new LiveArgs(_liveType.CreateString()); result.Channels = new List <LiveChannelInfo>(_count); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "page_count") { reader.Read(); result.PageCount = int.Parse(reader.Value); } if (reader.NodeType == XmlNodeType.Element && reader.Name == "v") { var liveInfo = new LiveChannelInfo(_liveType); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement) { var nodeName = reader.Name; if (nodeName != "nowplay" && nodeName != "willplay") { reader.Read(); } switch (nodeName) { case "vid": liveInfo.Id = int.Parse(reader.Value); break; case "title": liveInfo.Title = reader.Value; break; case "imgurl": liveInfo.ImageUri = reader.Value; break; case "nowplay": var ntime = reader["begin_time"]; reader.Read(); liveInfo.NowPlay = string.Format("{0} {1}", ntime, reader.Value); break; case "willplay": var wtime = reader["begin_time"]; reader.Read(); liveInfo.WillPlay = string.Format("{0} {1}", wtime, reader.Value); break; } } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "v") { result.Channels.Add(liveInfo); break; } } } } return(result); }
protected override LiveArgs AnalysisData(System.Xml.XmlReader reader) { var result = new LiveArgs(LiveType.Recommend.CreateString()); result.Channels = new List <LiveChannelInfo>(10); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "live") { var liveInfo = new LiveChannelInfo(LiveType.Recommend); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement) { var nodeName = reader.Name; reader.Read(); switch (nodeName) { case "id": liveInfo.Id = int.Parse(reader.Value); break; case "title": liveInfo.Title = reader.Value; break; case "startTime": liveInfo.StartTime = DateTime.Parse(reader.Value); break; case "endTime": liveInfo.EndTime = DateTime.Parse(reader.Value); break; default: break; } } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "live") { result.Channels.Add(liveInfo); break; } } } } return(result); }