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; } }
/// <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); } }
/// <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); } }
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); } }
public NodeContent(string strXPath, NCEncoding encoding, NCType type) { m_strXPath = strXPath; m_ncEncoding = encoding; m_ncType = type; }
public NodeContent(string strXPath) { m_strXPath = strXPath; m_ncEncoding = NCEncoding.String; m_ncType = NCType.Text; }
public string GetNodeContent(XmlNode xmlNode, string strXPath, NCEncoding ncEncoding, NCType ncType) { NodeContent content = new NodeContent(strXPath, ncEncoding, ncType); return(GetNodeContent(xmlNode, content)); }