使用 RestSharp 将 XML CDATA 反序列化为字符串变量
本文关键字:字符串 变量 反序列化 CDATA RestSharp XML 使用 | 更新日期: 2023-09-27 17:56:30
我正在尝试获取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 的字段都返回为空。
问题是我通读了 RSS 提要中的 xml,并在 items 类内容中命名了变量。 rss 提要中的实际项目元素是 content: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; }
}