SyndicationFeed AttributeExtensions名称空间前缀

时间:2012-02-16 23:12:23

标签: c# .net rss syndication

我正在为RSS Feed添加一些自定义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>

1 个答案:

答案 0 :(得分:0)

你知道我发现最容易做的就是正常创建,然后使用Feedburner将其提交给iTunes并使iTunes兼容。