Чтение заголовков каналов Atom и дата - PullRequest
0 голосов
/ 25 февраля 2012

Полагаю, это совсем не ново, но я не смог найти надежную ссылку, которая бы помогла мне правильно читать каналы атомов.Я хотел бы только получить название канала, опубликованную дату и время.Например, по следующей ссылке http://blogs.technet.com/b/markrussinovich/atom.aspx я хотел бы отобразить

Title 1: The Case of My Mom’s Broken Microsoft Security Essentials Installation   
Date time : 1-5-2005 12:00    
Title 2:.....

Спасибо

Ответы [ 3 ]

8 голосов
/ 25 февраля 2012

.NET Framework предоставляет набор классов и API, специально предназначенных для работы с Syndicated XML Feeds, включая RSS 2.0 и Atom 1.0, их можно найти в пространстве имен System.ServiceModel.Syndication .

Основные классы: System.ServiceModel.Syndication.SyndicationFeed представляет XML-канал в формате Atom или RSS. System.ServiceModel.Syndication.SyndicationItem представляет элементы в элементах Feed, "entry" или "Item", которые предоставляются как свойство SyndicationFeed IEnumerable Items .

Лично я предпочитаю использовать классы и API, представленные в пространстве имен System.ServiceModel.Syndication, а не Linq to XML, поскольку вы работаете напрямую со строго типизированными объектами, а не неоднозначными XElements.

3 голосов
/ 25 февраля 2012
var xdoc = XDocument.Load("http://blogs.technet.com/b/markrussinovich/atom.aspx");
XNamespace ns = XNamespace.Get("http://www.w3.org/2005/Atom");

var info = xdoc.Root
            .Descendants(ns+"entry")
            .Select(n =>
                new
                {
                    Title = n.Element(ns+"title").Value,
                    Time = DateTime.Parse(n.Element(ns+"published").Value),
                }).ToList();
1 голос
/ 25 февраля 2012

попробуйте этот запрос Linq to xml,

XDocument xml = XDocument.Load("http://blogs.technet.com/b/markrussinovich/atom.aspx");
XNamespace ns = XNamespace.Get("http://www.w3.org/2005/Atom");
var xmlFeed = from post in xml.Descendants(ns + "entry")
              select new
              {
                   Title = post.Element(ns + "title").Value,
                   Time = DateTime.Parse(post.Element(ns + "published").Value)
              };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...