Главная » C#, Windows Runtime, XAML, Разработка для Windows 8 » Работа с RSS лентами Windows Runtime

0

RSS-лента на сегодняшний день является очень популярным форматом обмена информацией.  Этот  формат  стандартизирован и  активно  используется  при обмене данными между различными частями одного приложения/сервиса или между различными приложениями.  RSS – это не что иное как XML-документ со  строго  определенными  элементами  (тэгами).  Информация  из  различных источников,  представленная в  формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде.

Для  упрощения  работы  с  этим  форматом  данных  в   Metro-приложениях разработчики Microsoft создали специальные типы данных. Все они расположены в пространстве имен Windows.Web.Syndication.

Для загрузки RSS-ленты необходимо использовать класс  SyndicationClient из указанного пространства имен. Приведем пример его использования:

SyndicationClient client = new SyndicationClient(); client.BypassCacheOnRetrieve = true;

// Некоторым серверам необходим параметр запроса user-agent client.SetRequestHeader("user-agent",

"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");

SyndicationFeed currentFeed = await client.RetrieveFeedAsync(uri);

Присваивая  свойству BypassCacheOnRetrieve значение true, мы указываем на необходимость кеширования результата запроса данных. А также устанавливаем параметр user-agent, так как некоторые сервера требуют передачи его значения.

После загрузки переменная currentFeed будет содержать список всех данных, которые загрузились с сервера. Для получения доступа к каждой записи ленты мы используем свойство Items:

foreach (var item in currentFeed.Items)

{

// Заголовок

string title = item.Title != null ? item.Title.Text : "(no title)";

// Получение основного адреса

string link = string.Empty; if (item.Links.Count > 0)

{

link = item.Links[0].Uri.AbsoluteUri;

}

// Получение контента

string content = "(no content)"; if (item.Content != null)

{

content = item.Content.Text;

}

else if (item.Summary != null)

{

content = item.Summary.Text;

}

}

Сергей Лутай, Сергей Байдачный, Windows 8 для C# разработчиков

По теме:

  • Комментарии