我正在使用System.ServiceModel.Syndication.SyndicationFeed来创建一个rss feed,我从中得到这个:
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel>...</channel></rss>
Run Code Online (Sandbox Code Playgroud)
除了我验证我的饲料时,这一切都在游泳.
验证器抱怨a10名称空间前缀,并建议我使用atom代替.这听起来很合理..除了我看不到改变前缀的简单方法.
有关更改前缀的方法的任何想法?
Der*_*ins 20
要为atom扩展指定自定义名称,需要在feed formatter上禁用SerializeExtensionsAsAtom:
var formatter = feed.GetRss20Formatter();
formatter.SerializeExtensionsAsAtom = false;
Run Code Online (Sandbox Code Playgroud)
然后,您需要添加命名空间
XNamespace atom = "http://www.w3.org/2005/Atom";
feed.AttributeExtensions.Add(new XmlQualifiedName("atom", XNamespace.Xmlns.NamespaceName), atom.NamespaceName);
Run Code Online (Sandbox Code Playgroud)
现在您可以开始使用扩展程序了
feed.ElementExtensions.Add(new XElement(atom + "link", new XAttribute("href", feedLink), new XAttribute("rel", "self"), new XAttribute("type", "application/rss+xml")));
Run Code Online (Sandbox Code Playgroud)
最后将feed写入响应流:
formatter.WriteTo(new XmlTextWriter(Response.Output));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3700 次 |
| 最近记录: |