Пример #1
0
        private void LoadRss(XmlDocument xmlDoc)
        {
            foreach (XmlElement item in xmlDoc.GetElementsByTagName("item"))
            {
                var pubDate = GetPubDateForItem(item);

                // Check for an image element.
                var node = item.SelectSingleNode("image");
                if (node != null && node.NodeType == XmlNodeType.Element)
                {
                    node = node.SelectSingleNode("url");
                    if (node != null && node.NodeType == XmlNodeType.Element)
                    {
                        var url = node.InnerText;
                        if (!string.IsNullOrWhiteSpace(url))
                        {
                            Log.Write(LogLevel.Debug, "Found image in item image element '{0}'.", url);
                            _images.Add(ImageRec.FromUrl(url, pubDate));
                        }
                    }
                }

                // Scrape the HTML in the description.
                node = item.SelectSingleNode("description");
                if (node != null && node.NodeType == XmlNodeType.Element)
                {
                    SearchHtmlForImages(node.InnerText, pubDate);
                }
            }
        }
Пример #2
0
        private void LoadAtom(XmlDocument xmlDoc)
        {
            foreach (XmlElement entry in xmlDoc.GetElementsByTagName("entry"))
            {
                var pubDate = GetPubDateForItem(entry);

                foreach (XmlNode node in entry.ChildNodes)
                {
                    if (node.NodeType != XmlNodeType.Element)
                    {
                        continue;
                    }
                    if (node.Name == "content")
                    {
                        XmlElement content = (XmlElement)node;
                        var        type    = content.GetAttribute("type");
                        if (string.IsNullOrEmpty(type) || type == "html" || type == "xhtml")
                        {
                            SearchHtmlForImages(content.InnerText, pubDate);
                        }
                        else if (type.StartsWith("image/"))
                        {
                            var src = content.GetAttribute("src");
                            if (!string.IsNullOrWhiteSpace(src))
                            {
                                _images.Add(ImageRec.FromUrl(src, pubDate));
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
 private void SearchHtmlNodeForImages(HtmlNode parentNode, DateTime pubDate)
 {
     foreach (var node in (from n in parentNode.ChildNodes
                           where n.NodeType == HtmlNodeType.Element
                           select n))
     {
         if (node.Name == "img")
         {
             var src = node.GetAttributeValue("src", "");
             if (!string.IsNullOrWhiteSpace(src))
             {
                 Log.Write(LogLevel.Debug, "Found image in item HTML '{0}'.", src);
                 _images.Add(ImageRec.FromUrl(src, pubDate));
             }
         }
         else if (node.HasChildNodes)
         {
             SearchHtmlNodeForImages(node, pubDate);
         }
     }
 }