3

我有一个联合供稿。使用 Rss20FeedFormatter 进行序列化时,我得到 xmlns:cf 和 xmlns:cfi 在 xml 中声明的命名空间。媒体元素保持内联。

<media:thumbnail media:url="http://arwen.palantir.za:8080/signate/thumbnail/dXVpZDoxNjlkMzIyOS0zYjk5LTQ2NDctOTc5MS00OTJiYmJmNGM0MTkvUEdTMDkwMC5QREY=" media:width="200" media:height="200" xmlns="http://www.w3.org/2005/Atom" xmlns:a="http://search.yahoo.com/mrss" xmlns:media="http://search.yahoo.com/mrss"></media:thumbnail>

我确信这就是缩略图显示不正确的原因。如何添加媒体:缩略图并使其正常工作。我正在使用Windows 7 搜索查看,所以它绝对支持缩略图。

我想要在 xml 标头中声明的媒体应该是这样的。

这是我的代码:

        item.ElementExtensions.Add(
            new XElement(mrss + "thumbnail",
                new XAttribute(XNamespace.Xmlns + "media", mrss),
                new XAttribute(mrss + "url", url + Convert.ToBase64String(Encoding.ASCII.GetBytes(item.Id))),
                new XAttribute(mrss + "width", 200),
                new XAttribute(mrss + "height", 200)
            ).CreateReader());
4

2 回答 2

2

正如 Cragly 解释的那样,您确实需要添加正确的命名空间,但这里是创建正确 media:thumbnail 元素的方法:

    XNamespace _yahooMediaNamespace = "http://search.yahoo.com/mrss/";
    // Result is a SyndicationItem
    result.ElementExtensions.Add(
        new SyndicationElementExtension(
            new XElement(
                _yahooMediaNamespace + "thumbnail", 
                new XAttribute("url", "http://www.example.com/image.jpg")
            )
        )
    );
于 2017-10-10T10:01:33.943 回答
1

我认为这是您只需要在使用提要命名空间之前声明它们的情况。我提供了另一个问题的答案,该问题显示了如何声明命名空间,然后在 ElementExtension 中使用它。

于 2009-12-19T22:24:08.853 回答