如何使用SyndicationItem在c#中创建rss内容编码

时间:2019-03-15 04:59:33

标签: c# xml

我想生成一个如下所示的xml提要,其中的描述和内容必须在标记中,例如 enter image description here

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);
        }

我将如何做

1 个答案:

答案 0 :(得分:1)

如果需要CDATA节点,则可以使用new XCData(content)添加它。

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

但是,我更关心description:encodedcontent:encoded标签。您正在滥用名称空间,这可能会在使用一致的XML解析器时给您带来严重的问题。