我正在使用 System.ServiceModel.Synmination.SynspirationFeed 创建一个 rss 提要,从中我得到以下内容:
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel>...</channel></rss>
一切都进展顺利,除了当我验证我的提要 http://validator.w3.org/feed.
验证器抱怨 a10 命名空间前缀,并建议我改用atom。这听起来很合理..除了我看不到更改前缀的直接方法。
关于更改前缀的方法有什么想法吗?
要为 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")));
最后将提要写入响应流:
formatter.WriteTo(new XmlTextWriter(Response.Output));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)