加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – SyndicationFeed:内容为CDATA?

发布时间:2020-12-16 07:34:41 所属栏目:asp.Net 来源:网络整理
导读:我正在使用.NET的SyndicationFeed来创建RSS和ATOM提要.不幸的是,我需要在描述元素(SyndicationItem的Content属性)中使用 HTML内容,格式化程序会自动对 HTML进行编码,但我宁愿将整个描述元素包装在CDATA中,而不对HTML进行编码. 我的(简单)代码: var feed = n
我正在使用.NET的SyndicationFeed来创建RSS和ATOM提要.不幸的是,我需要在描述元素(SyndicationItem的Content属性)中使用 HTML内容,格式化程序会自动对 HTML进行编码,但我宁愿将整个描述元素包装在CDATA中,而不对HTML进行编码.

我的(简单)代码:

var feed = new SyndicationFeed("Title","Description",new Uri("http://someuri.com"));
var items = new List<SyndicationItem>();

var item = new SyndicationItem("Item Title",(string)null,new Uri("http://someitemuri.com"));

item.Content = SyndicationContent.CreateHtmlContent("<b>Item Content</b>");

items.Add(item);
feed.Items = items;

有人知道如何使用SyndicationFeed做到这一点吗?我的最后一招是“手动”为feed创建XML,但我宁愿使用内置的SyndicationFeed.

解决方法

这对我有用:

public class CDataSyndicationContent : TextSyndicationContent
{
    public CDataSyndicationContent(TextSyndicationContent content)
        : base(content)
    {}

    protected override void  WriteContentsTo(System.Xml.XmlWriter writer)
    {
        writer.WriteCData(Text);
    }
}

然后你可以:

new CDataSyndicationContent(new TextSyndicationContent(content,TextSyndicationContentKind.Html))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读