Самый простой способ получить идентификатор или ссылку и обновленную дату из RSS-канала? - PullRequest
0 голосов
/ 18 декабря 2009

Я пытался использовать linq, но не смог, потому что у меня нет знаний XML.

Какой самый простой способ получить идентификатор или ссылку и обновить из RSS-канала? (пример канала -> https://stackoverflow.com/feeds/question/1926343)

Я понятия не имею, как пропустить все элементы до первого элемента ввода. Я также не знаю, как извлечь каждую ссылку и данные из каждого элемента из элемента ввода

1 Ответ

2 голосов
/ 18 декабря 2009

Вот минимальный пример того, как это сделать:

var url = "http://stackoverflow.com/feeds/question/1926343";
var rss = new WebClient().DownloadString(url);
var doc = XDocument.Parse(rss);
var mgr = new XmlNamespaceManager(new NameTable());
var ns = "http://www.w3.org/2005/Atom";
mgr.AddNamespace("atom", ns);

foreach (var entry in doc.XPathSelectElements("/atom:feed/atom:entry", mgr))
{
    var id = entry.Element(XName.Get("id", ns)).Value;
    var link = entry.Element(XName.Get("link", ns)).Attribute("href").Value;
    var updated = entry.Element(XName.Get("updated", ns)).Value;
    Console.WriteLine(id);
    Console.WriteLine("\tLink: " + link);
    Console.WriteLine("\tUpdated: " + updated);
}

А вот вывод, который он генерирует:

/1072258/alternativa-thead-sleep-v-c
    Link: /1072258/alternativa-thead-sleep-v-c
    Updated: 2009-12-18T05:21:53Z
/1072258/alternativa-thead-sleep-v-c/1926359#1926359
    Link: /1072258/alternativa-thead-sleep-v-c/1926359#1926359
    Updated: 2009-12-18T04:56:01Z
/1072258/alternativa-thead-sleep-v-c/1926361#1926361
    Link: /1072258/alternativa-thead-sleep-v-c/1926361#1926361
    Updated: 2009-12-18T04:56:06Z
/1072258/alternativa-thead-sleep-v-c/1926365#1926365
    Link: /1072258/alternativa-thead-sleep-v-c/1926365#1926365
    Updated: 2009-12-18T04:58:08Z
/1072258/alternativa-thead-sleep-v-c/1926446#1926446
    Link: /1072258/alternativa-thead-sleep-v-c/1926446#1926446
    Updated: 2009-12-18T05:21:53Z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...