你如何添加atom:link与rel =“self”链接到rss文档?

时间:2018-01-07 14:43:36

标签: rss

我正在尝试创建一个简单的rss源。我使用this服务表格w3.org来验证我的RSS。这是我的Feed的样子:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>example.com RSS</title>
        <link>https://www.example.com/</link>
        <description>A cool website</description>
        <item>
            <title>Cool Article</title>
            <link>https://www.example.com/cool-article</link>
            <guid>https://www.example.com/cool-article</guid>
            <pubDate>Sun, 10 Dec 2017 05:00:00 GMT</pubDate>
            <description>My cool article description</description>
        </item>
    </channel>
</rss>

但是我从Feed验证器中收到此错误:

  

此Feed有效,但可以通过实施以下建议来改进与最广泛的Feed阅读器的互操作性。

     

第14行,第4列:缺少原子:与rel =“self”[help]

的链接

所以我点击[help]并获取此信息:

  

如果您还没有这样做,请在Feed的顶部声明Atom命名空间,因此:

     

  然后在通道部分插入一个原子:链接到您的Feed。以下是一个让您入门的示例。请务必使用Feed的网址替换href属性的值。

     

&lt; atom:link href =“http://dallas.example.com/rss.xml”rel =“self”type =“application / rss + xml”/&gt;

好的,首先我试图验证rss, Atom,但他们似乎试图引导我向Atom方向发展。好的,无论如何我都会尝试。

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>example.com RSS</title>
        <link>https://www.example.com/</link>
        <description>A cool website</description>
        <atom:link href="http://www.example.com/rss.xml" rel="self" type="application/rss+xml" />
        <item>
            <title>Cool Article</title>
            <link>https://www.example.com/cool-article</link>
            <guid>https://www.example.com/cool-article</guid>
            <pubDate>Sun, 10 Dec 2017 05:00:00 GMT</pubDate>
            <description>My cool article description</description>
        </item>
    </channel>
</rss>

验证它并且它会给你这个错误:

  

自我引用与文档位置[帮助]

不匹配

所以我点击[help]并获取此信息:

  

检查href属性引用的文档。如果它不是预期的饲料,请更正它。

     

这可能不是问题。目前,feedvalidator没有进行探测以评估文档的等效性。

这就是我被困住的地方。他们没有说如何做到这一点。我是否通过阅读原子规范并将我的Feed重新实现为Atom来实现这一目标?因为我不打算这样做。

3 个答案:

答案 0 :(得分:2)

正如消息所示,Feed有效。因此,您无需对Feed进行任何更改即可继续操作。我的所有Feed都没有这个链接,而且它们的效果非常好。消息很老,不准确。

答案 1 :(得分:2)

验证器通常是错误的或令人困惑的。我最近生成了一个Atom文档并尝试使用该工具进行检查,它开始向我建议RSS中缺少标签...摆脱工具建议的atom:link标签,它是Atom的原因文件不是RSS。我只想仔细检查RSS规范而不是使用该工具。

Self reference doesn't match document location [help]

它可能会再次检查Atom规范。即使它是一个有效的Atom文档,如果您将xml内容粘贴到该工具中,您将收到该消息。它检查是否自己&#39;原子中的链接与原子文档的位置相同。

答案 2 :(得分:-1)

您无需将Feed从RSS转为Atom即可支持atom:link

要解决此问题,请在atom:link元素中将href属性的值更改为RSS源的网址。因此,如果您的RSS源位于http://dallas.example.com/rss.xml,则atom:link元素应为:

<atom:link href="http://dallas.example.com/rss.xml" rel="self" 
type="application/rss+xml" />

在RSS Feed中加入atom:link元素,使其更具可移植性,更易于缓存。有关详细信息,请访问RSS Best Practices Profile