RSS提要中的图片

30

每当我在 RSS 源中看到图片时,它们都被嵌入 CDATA 中,而不是被标签包围。

我希望在我的源中,这些图片可以不用嵌入 CDATA 而直接显示出来。

无论是在浏览器、订阅阅读器(Bloglines)还是通过 FeedBurner,以下结构都不会显示图片,虽然它是有效的 RSS。有没有人有相关的经验?

<item>
<category>Viewbook</category>
<title>Widget</title>
<description>Learn more about our widgets.</description>
<link>http://www.widget.com/Default.aspx</link>
<image>
<url>http://www.widget.com/images/thumb.gif</url>
<title>Widget</title>
<link>http://www.widget.com/Default.aspx</link>
<description>Learn more about our widgets.</description>
</image>
</item> 
6个回答

19

在Sponsz上校的提示下,我进行了研究:

对于物品而言,没有图像标签,只有针对频道的标签。因此,您必须通过CDATA标签来完成。


此外,也请查看 RSS 的 Media RSS 规范扩展:http://video.search.yahoo.com/mrss - danmactough
根据您的需求,有不同的选择。请查看我的回答:https://dev59.com/hnRB5IYBdhLWcg3w3K8J#45870352 - user241244
有封闭标签。 - ram4nd

13

为了完整起见:在RSS 2.0中,您可以在一项内拥有一个单独的enclosure,根据规范可以用于单个图像。但是,我了解到在订阅聚合器中的支持情况各不相同。更通常情况下,这主要用于播客等内容。 RSS 2.0标准规定:

<enclosure> is an optional sub-element of <item>. 

它有三个必需的属性。url表示附件所在的位置,length表示其大小(以字节为单位),type表示其类型,是标准的MIME类型。 但url必须是http url。

请注意,必须包括该项的大小,以及URL和mime类型。

然而,正如其他人指出的那样,将图片包含在CDATA中更为常见。


6
你可以在item中使用media:content元素(spec)。
如果没有为整个RSS源声明MRSS(Media RSS)命名空间(下面的xmlns:media属性),请确保为此元素声明,否则它将无法验证。(例如,开箱即用的WordPress。)
    <media:content 
        xmlns:media="http://search.yahoo.com/mrss/" 
        url="http://www.widget.com/images/thumb.gif" 
        medium="image" 
        type="image/jpeg" 
        width="150" 
        height="150" />

这可能会或可能不会按您想要的方式显示;您需要进行实验。嵌入内容在这方面更简单,但此路线有助于处理MailChimp集成(感谢this answer)或其他定制解决方案。
一个示例实现WordPress在我的答案中

5

很遗憾,MailChimp上的此链接已不再有效。 - Berto
您的链接不可用。 - Mehdi

1

Use, e.g.:

<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3" length="12216320" type="audio/mpeg" />

文档 在这里


-4

它与独立标签一起工作,就像你所说的。问题在于2.0版本的规范。

我知道,有些RSS阅读器出于带宽原因会禁止显示图片。

来源:RSS规范2.0 via 维基百科


3
这只为您提供一个用于源的图片,例如标志 -- 它是 <channel> 的子级而不是 <item>。 - Colonel Sponsz
因此,不应该通过图像标签在项目中包含图像。 - guerda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接