SyndicationFeed AttributeExtensions命名空间前缀

本文关键字:前缀 命名空间 AttributeExtensions SyndicationFeed | 更新日期: 2023-09-27 18:24:50

我正在向RSS提要添加一些自定义的iTunes播客标签。

        feed.AttributeExtensions.Add(new XmlQualifiedName(itunesPrefix, 
            "http://www.w3.org/2000/xmlns/"), itunesNs);
        var extensions = feed.ElementExtensions;
        extensions.Add(new SyndicationElementExtension("category", itunesNs, "Business"));
        var categoryElem = XName.Get("category", itunesNs);
        extensions.Add(
            new XElement(categoryElem,
                new XAttribute("text", "Sports & Recreation"),
                    new XElement(categoryElem,
                        new XAttribute("text", "Amateur")
                    )
            ).CreateReader()
        );

输出为:

<itunes:category>Business</itunes:category>
<category text="Sports &amp;amp; Recreation" xmlns="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <category text="Amateur">
  </category>
</category>

为什么SyndicationElementExtension正确地添加了命名空间前缀"itunes",而传递XmlReader实例却没有?

我期望的输出是:

<itunes:category text="Sports &amp;amp; Recreation">
  <itunes:category text="Amateur">
  </itunes:category>
</itunes:category>

SyndicationFeed AttributeExtensions命名空间前缀

你知道我发现最简单的方法就是正常创建它,然后使用Feedburner将它提交到iTunes并使其兼容。