1

我正在尝试获取 RSS 提要并将其反序列化为 rssEntry 对象列表。

var Client = new RestClient("url here");
Request = new RestRequest { RequestFormat DataFormat.Xml };
var response = Client.Execute<Channel>(Request);
return response.Data.Item;

这会填充除包含 CDATA 的内容之外的所有内容

频道.cs

 public class Channel
 {
    public string Title { get; set; }
    public string Link { get; set; }
    public string AtomLink { get; set; }
    public string Description { get; set; }
    public DateTime LastBuildDate { get; set; }
    public string Generator { get; set; }
    public string Language { get; set; }
    public string UpdatePeriod { get; set; }
    public int UpdateFrequency { get; set; }
    public RssItems Item { get; set; }
}

物品.cs

public class Item 
{
        public string Title { get; set; }
        public string Link { get; set; }
        public string Comments { get; set; }
        public DateTime PubDate { get; set; }
        public string Creator { get; set; }
        public string Category { get; set; }
        public string Description { get; set; }
        public string Content { get; set; }
        public string Guid { get; set; }
        public string CommentRss { get; set; }
        public int SlashComments { get; set; }
  }

我愿意使用 RestSharp 以外的东西,但我正在为此尝试,希望它是一个很好的简单解决方案。

目前,任何带有 CDATA 的字段都返回为 null。

4

1 回答 1

0

问题是我通读了 RSS 提要中的 xml,并在项目类内容中命名了变量。rss 提要中的实际项目元素是 content:encoded。

将此变量更改为 Encoded 修复了它,完全是我自己的错。

public class Item 
{
        public string Title { get; set; }
        public string Link { get; set; }
        public string Comments { get; set; }
        public DateTime PubDate { get; set; }
        public string Creator { get; set; }
        public string Category { get; set; }
        public string Description { get; set; }
        public string Encoded { get; set; }
        public string Guid { get; set; }
        public string CommentRss { get; set; }
        public int SlashComments { get; set; }
}
于 2011-05-17T22:24:37.077 回答