c# - 如何使用 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);
}
我该怎么做
解决方案
如果您需要 CDATA 节点,您可以使用new XCData(content)
.
var xdoc = new XDocument(new XElement("Hello", new XCData("World")));
但是,我更关心description:encoded
andcontent:encoded
标签。您在滥用名称空间,这可能会在使用符合标准的 xml 解析器时给您带来严重的问题。
推荐阅读
- python-asyncio - Asyncio 长时间运行的任务
- python - Django 分配了不正确的媒体 URL
- javascript - 如何在 Google 地图自动完成中优先考虑国家/地区?
- hadoop - Nifi:捕获文件名的中间部分
- docker - 运行 Confluent docker 时的日志
- quarkus - beans.xml 文件中的 Bean 定义
- testing - 在 testcafe 中使用不同的 URL 运行相同的代码
- openshift - Openshift - 将 containerPort 公开为环境变量
- r - r shiny - 将函数应用于通过 pickerInput 选择的列
- linux - kill -9 是终止进程时的最后手段。第一个手段是什么?