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
- clone下这个工程https://github.com/androidyue/atom2rss
- 使用
php atom2rss.php input_file output_file
即可完成转换。
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规则。 上述代码可以根据自己的需要设置时区。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode82|翻转字符串里的单词
- LeetCode81|移动零
- LeetCode80|反转字符串中的元音字母
- LeetCode79|平方数之和
- LeetCode91|寻找重复数
- LeetCode90|两个数组的交集
- LeetCode89|在排序数组中查找数字I
- LeetCode88|两数之和IV-输入BST
- LeetCode98|判定字符是否唯一
- LeetCode97|合并两个有序链表
- LeetCode99|数组中出现次数超过一半的数字
- redis源码之hash结构的实现
- redis源码之set结构
- redis源码之zset结构的实现
- Elasticsearch: range 数据类型及基于range的聚合 (7.4发行版新功能)