AtomFeed.Feed.GetItemFromFeedEntry C# (CSharp) Метод

GetItemFromFeedEntry() приватный статический Метод

private static GetItemFromFeedEntry ( XPathNodeIterator xPathNodeIterator, IXmlNamespaceResolver xmlNamespaceManager ) : FeedItem
xPathNodeIterator System.Xml.XPath.XPathNodeIterator
xmlNamespaceManager IXmlNamespaceResolver
Результат FeedHanderPluginInterface.FeedItem
        private static FeedItem GetItemFromFeedEntry(XPathNodeIterator xPathNodeIterator, IXmlNamespaceResolver xmlNamespaceManager)
        {
            var item = new FeedItem();

            if (xPathNodeIterator.Current != null)
            {
                var subnav = xPathNodeIterator.Current.CreateNavigator();
                var textnode = subnav.SelectSingleNode("atom:title/text()", xmlNamespaceManager);
                item.Title = textnode == null ? "(untitled)" : WebUtility.HtmlDecode(textnode.ToString()).Trim();
                var linkiterator = subnav.Select("atom:link", xmlNamespaceManager);
                while (linkiterator.MoveNext() && item.Link == null)
                {
                    var linknav = linkiterator.Current;
                    if (linknav != null)
                    {
                        if (!linknav.HasAttributes) continue;
                        var rel = linknav.GetAttribute("rel", "");
                        if (rel.Equals("alternate"))
                        {
                            item.Link = new Uri(linknav.GetAttribute("href", ""));
                        }
                    }
                }
                // If no link with rel = 'alternate' in the entry, just pick the first link
                if (item.Link == null)
                {
                    var linknav = subnav.SelectSingleNode("atom:link", xmlNamespaceManager);
                    if (linknav != null)
                    {
                        Uri result;
                        if (Uri.TryCreate(linknav.GetAttribute("href", ""), UriKind.Absolute, out result))
                        {
                            item.Link = result;
                        }
                    }
                }
                var updatednav = subnav.SelectSingleNode("atom:updated/text()", xmlNamespaceManager);
                if (updatednav != null)
                {
                    DateTime gdt;
                    var res = DateTime.TryParse(updatednav.ToString(), out gdt);
                    if (res)
                    {
                        item.Date = gdt;
                    }
                }
            }
            return item;
        }