Google Alerts RSS Feed в приложении MVC
Полное раскрытие: я новичок в приложениях MVC, поэтому я могу быть далеко от моего подхода здесь. Это была очень крутая кривая обучения.
Мне поручено разработать приложение MVC, которое может отображать настройки RSS-канала через Google Alerts. Ниже приведена ссылка на пример канала предупреждений, который я настроил для "наркоманов" и который я пытаюсь прочитать:
http://www.google.com/alerts/feeds/11811034629636691510/10685173545303329123
Как я могу загрузить все поля ввода в ленте в структуру данных, которая может быть отображена в виде? Я столкнулся с проблемами при попытке загрузить URL-адрес в XmlReader с помощью функции Create(), а также XDocument с помощью функции Load(). Я продолжаю получать XmlException для Uri.
В качестве структуры данных фида я использую следующее:
public class FeedViewModel
{
public FeedItem[] FeedItems { get; set; }
}
public class FeedItem
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime Date { get; set; }
public string Link { get; set; }
}
Меня сейчас не беспокоит фактическое отображение, я просто обеспокоен загрузкой данных фида в классы. Может кто-нибудь помочь или указать мне в правильном направлении?
1 ответ
Да, вы можете получить исключения XML при попытке прочитать XmlReader
даже я не совсем уверен, почему. Что вы можете сделать, это получить HttpResponse
, http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx
public static string HttpGet()
{
WebClient client = new WebClient();
// Add a user agent header in case the
// requested URI contains a query.
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
using (Stream data = client.OpenRead("http://www.google.com/alerts/feeds/11811034629636691510/10685173545303329123"))
{
using (StreamReader reader = new StreamReader(data))
{
string s = reader.ReadToEnd();
}
}
}
Теперь у вас есть строка в формате XML, если ваши заголовки являются динамическими. Вы можете анализировать xml и создавать заголовки на основе Xml Elements.