c# – SyndicationFeed将名称空间前缀从a10更改为atom
发布时间:2020-12-15 03:57:17 所属栏目:百科 来源:网络整理
导读:我正在使用System.ServiceModel.Syndication.SyndicationFeed创建一个rss源,从中我得到这样: rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"channel.../channel/rss 这是所有的工作游泳,除了当我validate my feed. 验证器抱怨a10命名空间前缀,
我正在使用System.ServiceModel.Syndication.SyndicationFeed创建一个rss源,从中我得到这样:
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel>...</channel></rss> 这是所有的工作游泳,除了当我validate my feed. 验证器抱怨a10命名空间前缀,并建议我使用atom.这听起来很合理..除了我看不到直接改变前缀的方式. 关于改变前缀的方法的任何想法? 解决方法
要为原子扩展指定自定义名称,您需要在feed格式化程序上禁用SerializeExtensionsAsAtom:
var formatter = feed.GetRss20Formatter(); formatter.SerializeExtensionsAsAtom = false; 那么你需要添加命名空间 XNamespace atom = "http://www.w3.org/2005/Atom"; feed.AttributeExtensions.Add(new XmlQualifiedName("atom",XNamespace.Xmlns.NamespaceName),atom.NamespaceName); 现在,您可以开始使用扩展 feed.ElementExtensions.Add(new XElement(atom + "link",new XAttribute("href",feedLink),new XAttribute("rel","self"),new XAttribute("type","application/rss+xml"))); 最后将feed写入响应流: formatter.WriteTo(new XmlTextWriter(Response.Output)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |