Я изо всех сил пытаюсь разобрать канал Google. У меня нет проблем с обычным RSS, но этот немного более сложный канал на основе ATOM не работает для меня с тем же простым кодом синтаксического анализа. Как я могу попасть на вход Elelemts?
Следующий код, который я использую, не работает, он не возвращает коллекцию, но отлично работает с RSS для получения элементов, вероятно, потому что они не имеют атрибутов.
XElement _xml = XElement.Parse(response); foreach (XElement value in _xml.Elements("entry")) { ... }
Как мне получить доступ к элементам записи, если у них есть gd: etag = "..."?
Любая помощь приветствуется.
--------------- ОБРАЗЕЦ ПОДАЧИ ----------------------
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:docs="http://schemas.google.com/docs/2007" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/"DUMFR3YyfCt7ImA9WxNTFU0.""> <id>https://docs.google.com/feeds/default/private/full</id> <updated>2009-08-17T11:10:16.894Z</updated> <title>Available Documents - user@gmail.com</title> <openSearch:startIndex>1</openSearch:startIndex> <entry gd:etag="'EVJVTBICRit7ImBq'"> <id>https://docs.google.com/feeds/id/document%3A12345</id> <published>2009-07-22T19:02:57.616Z</published> <updated>2009-07-29T20:31:39.804Z</updated> </entry> <entry gd:etag="'HhJSFgpeRyt7ImBq'"> <id>https://docs.google.com/feeds/id/pdf%3A12345</id> <published>2009-04-09T18:23:09.035Z</published> <updated>2009-04-09T18:23:09.035Z</updated> </entry> ... </feed>
Вы должны использовать Linq. Загрузите xml в объект XDocument и затем запустите запрос Linq для этого для записей, которые имеют gd: etag = "".
XDocument feedXml = XDocument.Load(uriToFeed); var feedInfo = from item in publicationsXml.Descendants("feed") select new Feed // this can be a class that has the properties // from each feed that you care about { // code to retreive info you need from the item ID = item.Element("id").Value, //etc. };