我正在尝试创建一个简单的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来实现这一目标?因为我不打算这样做。
答案 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。