12

System.ServiceModel.Syndication.SyndicationFeed を使用して、これを取得する RSS フィードを作成しています。

<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0"><channel>...</channel></rss>

フィードを検証するときを除いて、すべて問題なく動作しています。

バリデーターは a10 名前空間プレフィックスについて不平を言い、代わりにアトムを使用することを提案します。それは合理的に聞こえます..ただし、プレフィックスを変更する簡単な方法がわかりません。

プレフィックスを変更する方法についてのアイデアはありますか?

4

1 に答える 1

24

Atom 拡張機能のカスタム名を指定するには、フィード フォーマッタで 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));
于 2013-04-12T12:22:34.400 に答える