RestSharpを使用したXML CDATAを文字列変数に逆シリアル化します
-
14-11-2019 - |
質問
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 を含むコンテンツ以外のすべてを満たす
channel.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; }
}
.
item.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として返されます。
解決
問題は、RSSフィードのXMLを読み、Itemsクラスのコンテンツ内の変数と呼びました。RSSフィードの実際のアイテム要素は内容:エンコードされました。
符号化されたこの変数を修正するように、完全に私自身の障害を修正します。
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; }
}
. 所属していません StackOverflow