首页 > 解决方案 > 如何使用 SyndicationItem 在 c# 中创建 rss 内容编码

问题描述

我想生成一个如下所示的 xml 提要,其中描述和内容需要在标签中 在此处输入图像描述

List<SyndicationItem> myItems = new List<SyndicationItem>();
        foreach (TestViewModel testViewModel in rssViewModel.Test)
        {
            SyndicationItem myItem = new SyndicationItem
                                         {
                                             Title = new TextSyndicationContent(testViewModel.TestTitle)

                                         };
            myItem.AddPermalink(new Uri(testViewModel.TestUrl));
            myItem.Id = testViewModel.TestUrl;
            myItem.ElementExtensions.Add(new XElement("pubDate", testViewModel.PublishedDate).CreateReader());
            foreach (TestAuthorViewModel testAuthorViewModel in testViewModel.Authors)
            {
                myItem.ElementExtensions.Add(new XElement("author", testAuthorViewModel.FullName).CreateReader());
            }
            myItem.ElementExtensions.Add(new XElement("description", string.Format("<![CDATA[{0}]]>", testViewModel.Abstract)).CreateReader());
            myItem.ElementExtensions.Add(new XElement("content", string.Format("<![CDATA[{0}]]>", testViewModel.Body)).CreateReader());
            myItems.Add(myItem);
        }

我该怎么做

标签: c#xml

解决方案


如果您需要 CDATA 节点,您可以使用new XCData(content).

var xdoc = new XDocument(new XElement("Hello", new XCData("World")));

但是,我更关心description:encodedandcontent:encoded标签。您在滥用名称空间,这可能会在使用符合标准的 xml 解析器时给您带来严重的问题。


推荐阅读