コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }