C# 分析Atom响应时出错

C# 分析Atom响应时出错,c#,xml,parsing,atom-feed,yandex,C#,Xml,Parsing,Atom Feed,Yandex,我试图解析来自Yandex Fotki(图像宿主)的HttpWebRequest。我得到一个Atom格式的响应,但在SyndicationFeed中我得到一个错误:名为“服务”且命名空间为“”的元素不是允许的提要格式。 我的代码是: XmlReader reader = XmlReader.Create(new StringReader(response)); SyndicationFeed feed = SyndicationFeed.Load(reader); 以下

我试图解析来自Yandex Fotki(图像宿主)的HttpWebRequest。我得到一个Atom格式的响应,但在SyndicationFeed中我得到一个错误:名为“服务”且命名空间为“”的元素不是允许的提要格式。

我的代码是:

XmlReader reader = XmlReader.Create(new StringReader(response));
            SyndicationFeed feed = SyndicationFeed.Load(reader);
以下是输入(来自站点的响应):


包装材料
包装材料
application/atom+xml;类型=条目,应用程序/json;类型=条目
包装材料
形象/*
包装材料

我希望你能帮助我

SyndicationFeed
将只解析具有或联合格式的XML。Yandex Fotki网站的反应似乎也不一样

好吧,我发现了一件事,也许这就是你要找的。如果您在webbrowser中请求一个
值,您将得到一个Atom联合格式的XML

这是您必须使用
SyndicationFeed
解析的XML。因此,您必须检索集合元素的href值,获取该XML并将其加载到SyndicationFeed中。要停用集合元素,可以尝试以下操作:


使用XMLReader读取DOM,或将其反序列化为自定义类,或将XML加载到数据集或LINQ到XML。

是否可以像解析XML文件一样解析此文件,或者我必须使用XDocumen/XElement获取每个元素?是的。我认为这是可能的。
<app:service xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
  <app:workspace>
    <atom:title>packda на Яндекс.Фотках</atom:title>
    <app:collection href="http://api-fotki.yandex.ru/api/users/packda/albums/" id="album-list">
      <atom:title>Все альбомы пользователя packda</atom:title>
      <app:accept>application/atom+xml; type=entry, application/json; type=entry</app:accept>
    </app:collection>
    <app:collection href="http://api-fotki.yandex.ru/api/users/packda/photos/" id="photo-list">
      <atom:title>Все фотографии пользователя packda</atom:title>
      <app:accept>image/*</app:accept>
      <app:categories scheme="http://api-fotki.yandex.ru/api/users/packda/tags/" />
    </app:collection>
    <app:collection href="http://api-fotki.yandex.ru/api/users/packda/tags/" id="tag-list">
      <atom:title>Все теги пользователя packda</atom:title>
      <app:accept />
    </app:collection>
  </app:workspace>
</app:service>