FlatRedBall.Glue.Plugins.Rss.RssItem.FromXElement C# (CSharp) Method

FromXElement() public static method

public static FromXElement ( System.Xml.Linq.XElement xElement ) : RssItem
xElement System.Xml.Linq.XElement
return RssItem
        public static RssItem FromXElement(XElement xElement)
        {
            RssItem newItem = new RssItem();

            var subElement = xElement.Element("title");
            if (subElement != null)
            {
                newItem.Title = subElement.Value;
            }

            subElement = ParseDescription(xElement, newItem, subElement);

            subElement = xElement.Element("comments");
            if (subElement != null)
            {
                newItem.Comments = subElement.Value;
            }

            subElement = xElement.Element("pubDate");
            if (subElement != null)
            {
                newItem.PublishedDate = xElement.Element("pubDate").Value;
            }
            return newItem;
        }

Usage Example

Exemplo n.º 1
0
        public static void StartDownloadingInformation(string url, Action <AllFeed, DownloadState> callback)
        {
            Thread thread = new Thread(() =>
            {
                AllFeed toReturn     = null;
                DownloadState result = DownloadState.Error;
                try
                {
                    // Create a request for the URL.
                    WebRequest request = WebRequest.Create(url);
                    // If required by the server, set the credentials.
                    request.Credentials = CredentialCache.DefaultCredentials;
                    // Get the response.
                    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                        using (Stream dataStream = response.GetResponseStream())
                            using (StreamReader reader = new StreamReader(dataStream))
                            {
                                // Read the content.
                                string responseFromServer = reader.ReadToEnd();
                                toReturn = new AllFeed();
                                //toReturn = FileManager.XmlDeserializeFromString<AllFeed>(responseFromServer);
                                XDocument doc = XDocument.Parse(responseFromServer);

                                foreach (var xElement in doc.Element("rss").Element("channel").Elements("item"))
                                {
                                    RssItem newItem = RssItem.FromXElement(xElement);
                                    toReturn.Items.Add(newItem);
                                }
                            }

                    result = DownloadState.InformationDownloaded;
                }
                catch (Exception e)
                {
                    result = DownloadState.Error;
                }
                callback(toReturn, result);
            });

            thread.Start();
        }