/// <summary> /// Converts an xml list of items into an RSS feed /// </summary> /// <param name="title"></param> /// <param name="link"></param> /// <param name="description"></param> /// <param name="copyright"></param> /// <param name="postTableName"></param> /// <param name="postItemTitleFieldName"></param> /// <param name="postItemDescriptionFieldName"></param> /// <param name="postItemUrlFieldName"></param> /// <param name="postItemDatePostedFieldName"></param> /// <param name="xmlData"></param> /// <param name="maxItemsToReturn"></param> /// <param name="eventLog"></param> /// <returns></returns> public static String XmlToRss(String title, String link, String description, String copyright, String postTableName, String postItemTitleFieldName, String postItemDescriptionFieldName, String postItemUrlFieldName, String postItemDatePostedFieldName, String xmlData, Int32 maxItemsToReturn, IEventLog eventLog) { var builder = new StringBuilder(); var settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true }; var feedWriter = XmlWriter.Create(builder, settings); feedWriter.WriteStartDocument(); // These are RSS Tags feedWriter.WriteStartElement("rss"); feedWriter.WriteAttributeString("version", "2.0"); feedWriter.WriteStartElement("channel"); feedWriter.WriteElementString("title", title); feedWriter.WriteElementString("link", link); feedWriter.WriteElementString("description", description); feedWriter.WriteElementString("copyright", copyright); var posts = DataSetHelper.ConvertXmlStringToDataSet(xmlData, false); // Write all Posts in the rss feed int[] itemCount = { 0 }; foreach (var post in posts.Tables[postTableName].Rows.Cast <DataRow>().Where(post => itemCount[0] <= maxItemsToReturn || maxItemsToReturn == 0)) { feedWriter.WriteStartElement("item"); feedWriter.WriteElementString("title", post[postItemTitleFieldName].ToString()); feedWriter.WriteElementString("description", post[postItemDescriptionFieldName].ToString()); feedWriter.WriteElementString("link", post[postItemUrlFieldName].ToString()); feedWriter.WriteElementString("pubDate", post[postItemDatePostedFieldName].ToString()); feedWriter.WriteEndElement(); itemCount[0]++; } // Close all open tags tags feedWriter.WriteEndElement(); feedWriter.WriteEndElement(); feedWriter.WriteEndDocument(); feedWriter.Flush(); feedWriter.Close(); return(builder.ToString()); }