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

SetFeedLink() приватный Метод

private SetFeedLink ( XPathNavigator xPathNavigator, IXmlNamespaceResolver xmlNamespaceManager ) : void
xPathNavigator System.Xml.XPath.XPathNavigator
xmlNamespaceManager IXmlNamespaceResolver
Результат void
        private void SetFeedLink(XPathNavigator xPathNavigator, IXmlNamespaceResolver xmlNamespaceManager)
        {
            // Create link from the first link element in feed with rel = 'alternative'
            var linkiterator = xPathNavigator.Select("atom:feed/atom:link", xmlNamespaceManager);
            while (linkiterator.MoveNext() && Url == null)
            {
                var linknav = linkiterator.Current;
                if (linknav == null || !linknav.HasAttributes) continue;
                var rel = linknav.GetAttribute("rel", "");
                if (rel.Equals("alternate"))
                {
                    Url = new Uri(linknav.GetAttribute("href", ""));
                }
            }
            // If no link with rel = 'alternate' in the feed, just pick the first link
            if (Url == null)
            {
                var linknode = xPathNavigator.SelectSingleNode("/atom:feed/atom:link", xmlNamespaceManager);
                if (linknode != null)
                {
                    Uri result;
                    if (Uri.TryCreate(linknode.GetAttribute("href", ""), UriKind.Absolute, out result))
                    {
                        Url = result;
                    }
                }
            }
        }