コード例 #1
0
ファイル: RssItem.cs プロジェクト: comshak/FeedReader
 public void CopyFrom(RssItem item)
 {
     if (item != null)
     {
         m_strTitle       = item.m_strTitle;
         m_strLink        = item.m_strLink;
         m_strDescription = item.m_strDescription;
         m_strAuthor      = item.m_strAuthor;
         m_strCategory    = item.m_strCategory;
         m_strRetain      = item.m_strRetain;
         m_dtPublished    = item.m_dtPublished;
         m_dtReceived     = item.m_dtReceived;
         m_Enclosure      = item.m_Enclosure;
         m_ncEncoding     = item.m_ncEncoding;
         m_ncDescType     = item.m_ncDescType;
     }
 }
コード例 #2
0
        /// <summary>
        /// Writes items from an ATOM feed.
        /// </summary>
        /// <param name="xmlDocument"></param>
        /// <param name="xmlWriter"></param>
        private void WriteAtomItems(XmlDocument xmlDocument, RssChannel rssChannel)
        {
            NCEncoding  encoding = NCEncoding.String;
            DateTime    now      = DateTime.Now;
            XmlNodeList xmlNodes = xmlDocument.SelectNodes("/atom:feed//atom:entry", FeedManager.NsManager);

            foreach (XmlNode xmlNode in xmlNodes)
            {
                RssItem rssItem = new RssItem();
                rssItem.Title        = FeedManager.GetNodeContent(xmlNode, "atom:title");
                rssItem.Link         = FeedManager.GetNodeContent(xmlNode, "atom:link[@rel=\"alternate\" and @type=\"text/html\"]/@href");
                rssItem.Published    = FeedManager.GetNodeContentFrom(xmlNode, s_arrAtomPubDate, ref encoding);
                rssItem.ReceivedDate = now;
                rssItem.Author       = FeedManager.GetNodeContent(xmlNode, "atom:author/atom:name");
                rssItem.Description  = FeedManager.GetNodeContentFrom(xmlNode, s_arrAtomDesc, ref encoding);
                rssItem.Encoding     = encoding;
                rssChannel.AddItem(rssItem);
            }
        }
コード例 #3
0
        /// <summary>
        /// Writes items from an RSS feed.
        /// </summary>
        /// <param name="xmlDocument"></param>
        /// <param name="xmlWriter"></param>
        private void WriteRssItems(XmlDocument xmlDocument, RssChannel rssChannel)
        {
            NCEncoding  encoding = NCEncoding.String;
            DateTime    now      = DateTime.Now;
            XmlNodeList xmlNodes = xmlDocument.SelectNodes("/rss/channel//item", FeedManager.NsManager);

            foreach (XmlNode xmlNode in xmlNodes)
            {
                RssItem rssItem = new RssItem();
                rssItem.Title        = FeedManager.GetNodeContent(xmlNode, "title");
                rssItem.Link         = FeedManager.GetNodeContent(xmlNode, "link");
                rssItem.Published    = FeedManager.GetNodeContentFrom(xmlNode, s_arrRssPubDate, ref encoding);
                rssItem.ReceivedDate = now;
                rssItem.Author       = FeedManager.GetNodeContentFrom(xmlNode, s_arrRssAuthor, ref encoding);
                rssItem.Description  = FeedManager.GetNodeContentFrom(xmlNode, s_arrRssDesc, ref encoding);
                rssItem.Category     = FeedManager.GetNodeContent(xmlNode, "category");
                rssItem.Encoding     = encoding;
                rssItem.Enclosure    = FeedManager.GetEnclosure(xmlNode, "enclosure");
                rssChannel.AddItem(rssItem);
            }
        }
コード例 #4
0
        public string GetNodeContentFrom(XmlNode xmlNode, NodeContent[] arrContents, ref NCEncoding encoding)
        {
            string     strReturn = null;
            NCEncoding encReturn = NCEncoding.String;

            try
            {
                int iCrt = 0;
                int iMax = arrContents.Length;
                if (iMax > 0)
                {
                    do
                    {
                        strReturn = GetNodeContent(xmlNode, arrContents[iCrt]);
                        if (strReturn != null)
                        {
                            encReturn = arrContents[iCrt].m_ncEncoding;
                        }
                        iCrt++;
                    }while ((iCrt < iMax) && String.IsNullOrEmpty(strReturn));
                }
            }
            catch (Exception ex)
            {
                Utils.DbgOutExc("FeedManager::GetNodeContentFrom()", ex);
            }
            if (strReturn == null)
            {
                encoding = NCEncoding.String;
                return(String.Empty);
            }
            else
            {
                encoding = encReturn;
                return(strReturn);
            }
        }
コード例 #5
0
 public NodeContent(string strXPath, NCEncoding encoding, NCType type)
 {
     m_strXPath   = strXPath;
     m_ncEncoding = encoding;
     m_ncType     = type;
 }
コード例 #6
0
 public NodeContent(string strXPath)
 {
     m_strXPath   = strXPath;
     m_ncEncoding = NCEncoding.String;
     m_ncType     = NCType.Text;
 }
コード例 #7
0
        public string GetNodeContent(XmlNode xmlNode, string strXPath, NCEncoding ncEncoding, NCType ncType)
        {
            NodeContent content = new NodeContent(strXPath, ncEncoding, ncType);

            return(GetNodeContent(xmlNode, content));
        }