[更新了工作解决方案]我有一个RSS源,可以在RSS客户端中正确显示,但是当被http://feedvalidator.org验证时,我收到此错误:
pubDate must be an RFC-822 date-time
Run Code Online (Sandbox Code Playgroud)
我的日期格式如下:
Wed, 27 Feb 2013 17:18:15 CET
知道什么可能是错的吗?可能是时区吗?
感谢Calum我现在获得了一个有效的RSS提要.原因是CET没有得到支持pubDate.
以下Java代码现在正常工作:
String pubDate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").format(new Date());
Run Code Online (Sandbox Code Playgroud) 此 StackOverflow答案表明您应该使用HTML条目内容并使用标准<img>标记链接到您的图像.
<content type="html">
<![CDATA[
<a href="http://test.lvh.me:3000/listings/341-test-pics?locale=en">
<img alt="test_pic" src="http://test.lvh.me:3000/system/images/20/medium/test_pic.jpg?1343246102" />
</a>
]]>
</content>
Run Code Online (Sandbox Code Playgroud)
我还在这里找到了一个名为Yahoo media extensions的东西,它允许你添加自定义的附加元素.
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
<!-- ommitted -->
<entry>
<!-- ommitted -->
<media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="path_to_image.jpg" />
</entry>
</feed>
Run Code Online (Sandbox Code Playgroud)
谷歌似乎也有自己类似的扩展.看到这里.
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<!-- ommitted -->
<entry>
<!-- ommitted -->
<g:image_link>http://www.google.com/images/google_sm.gif</g:image_link>
</entry>
</feed>
Run Code Online (Sandbox Code Playgroud)
我自己的直觉告诉我,我应该只需添加链接到图像,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<!-- ommitted -->
<entry>
<!-- ommitted -->
<link rel="enclosure" type="image/png" length="1337"
href="http://example.org/image.png"/>
</entry>
</feed>
Run Code Online (Sandbox Code Playgroud)
最大兼容性的正确方法是什么?
默认的rails XML构建器会转义所有HTML,例如:
atom_feed do |feed|
@stories.each do |story|
feed.entry story do |entry|
entry.title story.title
entry.content "<b>foo</b>"
end
end
end
Run Code Online (Sandbox Code Playgroud)
将产生文字:
<b>foo</b>
Run Code Online (Sandbox Code Playgroud)
而不是:foo
有没有办法指示XML构建器不转义XML?
如何将额外数据添加到未映射到标准条目节点(标题,链接,ID,更新,摘要)的原子提要中?是否可以在此处添加我自己的自定义xml并仍然符合规范?
我需要Perl中的代码来请求和解析ATOM和RSS提要.是否有CPAN模块?
使用.NET System.ServiceModel.Syndication类...
我想向SyndicationItem添加一个新的SyndicationElementExtension,它将导出以下XML:
<media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123" />
Run Code Online (Sandbox Code Playgroud)
有点像:
syndicationItem.ElementExtensions.Add(new SyndicationElementExtension("thumbnail", "http://video.search.yahoo.com/mrss", ?
Run Code Online (Sandbox Code Playgroud)
如何使用一些属性创建简单的SyndicationElementExtension?
我正在使用AtomFeedHelper并且一切正常,除了一个feed,我需要将每个条目链接到一个URL,该URL不是记录的默认polymorphic_url.
根据文档我已经为条目指定了:url选项.这正确地<url>在原子节点中呈现标记,但<link rel="alternate"仍然指向默认的polymorphic_url.查看源代码和文档,我不明白为什么会这样.
这是一个示例构建器:
atom_feed do |feed|
feed.title("Reports")
feed.updated(@reports.first.created_at)
for report in @reports
content = report.notes
feed.entry(report) do |entry|
entry.title(report.title)
entry.content(content, :type => 'html')
entry.url("http://myhost/page/")
entry.updated(report.updated_at.strftime("%Y-%m-%dT%H:%M:%SZ"))
entry.author do |author|
author.name(report.user.username)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
以下是问题节点的示例:
<entry>
<id>tag:myhost.mydomain.com,2005:SiteReport/2</id>
<published>2010-03-30T13:11:07-07:00</published>
<updated>2010-03-30T13:11:07-07:00</updated>
<link rel="alternate" type="text/html" href="http://myhost/site_reports/2"/>
<title>Test Title</title>
<content type="html">Test Content</content>
<url>http://myhost/page/</url>
<updated>2010-03-30T13:11:07Z</updated>
<author>
<name>Author</name>
</author>
</entry>
Run Code Online (Sandbox Code Playgroud)
我希望链接标记中的href值与url标记中的值匹配,但它不匹配.
当我查看列表中列出的来源http://api.rubyonrails.org/classes/ActionView/Helpers/AtomFeedHelper/AtomFeedBuilder.html
我假设这条线可以正常工作:
@xml.link(:rel => 'alternate', :type => 'text/html', :href => options[:url] || @view.polymorphic_url(record))
Run Code Online (Sandbox Code Playgroud)
困惑.有没有人遇到过这个?
谢谢大家!
我有一个奇怪的问题.我生成了一个HTML页面,托管在http://www.x.com/stuff上提供,其中包含
<head>
<link type="application/atom+xml" rel="alternate" href="/stuff/feed"/>
..
</head>
Run Code Online (Sandbox Code Playgroud)
结果是:
/stuff/feed的源,以便按预期工作feed://http//www.x.com/stuff/feed所以问题是,它会附加feed://到URL的前面,然后取出:后面的冒号http.我知道这feed:是HTTP,所以也许添加它不是一个大问题.
但无论如何,事实是,Firefox生成的我的<link>标签不起作用.
我曾考虑把网址是绝对的,但我还没有发现任何证据表明,这些网址必须是绝对的,也不是我能理解为什么会是这样.由于各种原因,我的代码生成绝对URL会很不方便.如有必要,我能做到这一点,但我希望看到的证据(如规格,或Mozilla错误报告)认为有必要做我的代码之前凌乱
你怎么看?有谁知道URL应该是绝对的任何证据?或者我做错了什么?这似乎是一个简单/明显的标签,没有什么可以出错,但我无法让它工作.
我正在寻找为RSS和Atom提供源构建一个feed生成器.
我一直在寻找能够生成各种格式的库(RSS .9通过当前的任何格式,Atom .3通过当前的任何格式).
我宁愿不仔细查看规范并尝试重新创建方向盘,但到目前为止我发现的用于生成提要的库要么不是非常强大(只支持特定的格式/版本),要么看起来支持不好或被遗弃的项目.
那里有一个好的图书馆吗?
在Gitlab中,每个项目都有一个RSS新闻提要按钮.
http://git.domain.name/userName/projectName/commits/master.atom?private_token=xxxxxxxxxxxxx
有没有办法为与一个用户相关的所有项目检索全局RSS提要?
或者更好的是,如果有办法在所有项目中捕获所有用户的订阅源,那就太酷了.
谢谢