Atom订阅转成RSS2.0

时间:2022-06-09
本文章向大家介绍Atom订阅转成RSS2.0,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Octopress博客自带的只Atom协议的订阅,但是最近提交收录网站时,需要使用RSS协议。于是利用周末简单实现了一下。

Atom和RSS

以下为维基百科对Atom和RSS的解释。

RSS(简易信息聚合)是一种消息来源格式规范,用以聚合经常发布更新数据的网站,例如博客文章、新闻、音频或视频的网摘。RSS文件(或称做摘要、网络摘要、或频更新,提供到频道)包含了全文或是节录的文字,再加上发用者所订阅之网摘布数据和授权的元数据。 Atom是一對彼此相關的標準。Atom供稿格式(Atom Syndication Format)是用於網站消息來源,基于XML的文档格式;而Atom出版協定(Atom Publishing Protocol,簡稱AtomPub或APP)是用於新增及修改網路資源,基于HTTP的协议。 Atom借鉴了各种版本RSS的使用经验,被許多的聚合工具广泛使用在发布和使用上。Atom供稿格式設計作為RSS的替代品;而Atom出版協定用來取代現有的多種發布方式(如Blogger API和LiveJournal XML-RPC Client/Server Protocol)。而值得一提的是Google提供的多種服务正在使用Atom。Google Data API(GData)亦基於Atom。

可以访问Atom與RSS 2.0的比較,了解更详细的内容。

由此可知,Atom是现在和未来的主要供稿格式,而RSS是一个已经声明被冻结的格式。

Atom转换成RSS

atom2rss.php

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

<?php $source = $argv[1]; $toFile = $argv[2]; $atom2rssXsl = dirname(__FILE__).'/atom2rss.xsl'; $chan = new DOMDocument(); $chan->load($source); $sheet = new DOMDocument(); $sheet->load($atom2rssXsl); $processor = new XSLTProcessor(); $processor->registerPHPFunctions(); $processor->importStylesheet($sheet); date_default_timezone_set("Asia/Shanghai"); $result = $processor->transformToXML($chan); if (strlen($result)) { file_put_contents($toFile, $result); } ?>

主要依赖的就是进行转换的atom2rss.xml规则。 上述代码可以根据自己的需要设置时区。