使用SimpleXML输出rss内容
代码说话。
header('Content-Type: application/xml', true); //set document header content type to be XML
$rss = new SimpleXMLExtendedModel('<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"></rss>');
$rss->addAttribute('version', '2.0');
$channel = $rss->addChild('channel'); //add channel node
$atom = $channel->addChild('atom:atom:link');
$atom->addAttribute('href', '你的RSS链接');
$atom->addAttribute('rel', 'self');
$atom->addAttribute('type', 'application/rss+xml');
$channel->addChild('title', 'RSS标题');
$description = $channel->addChild('description', 'RSS描述');
$link = $channel->addChild('link', '你的RSS链接');
$language = $channel->addChild('language', 'zh-Hans');
$lastBuildDate = new DateTime($date . ' 02:00:00');
$channel->addChild('lastBuildDate', $lastBuildDate->format(DateTime::RSS));
$channel->addChild('pubDate', $lastBuildDate->format(DateTime::RSS));
$generator = $channel->addChild('generator', '创建者');
// $result 为数据库查询结果
foreach ($result as $data) {
$item = $channel->addChild('item');
$item->addChild('title', 'item的标题');
$link = $item->addChild('link', 'item的链接');
$guid = $item->addChild('guid', 'item的链接');
$guid->addAttribute('isPermaLink', 'true');
$item->addChild('description')->addCData('item的描述');
$item = $item->addChild('pubDate', $lastBuildDate->format(DateTime::RSS)); //add pubDate node
}
echo $rss->asXML();
期间遇到CDATA的问题,解决方案新增一个扩展类。
class SimpleXMLExtendedModel extends SimpleXMLElement {
public function addCData($cdata_text) {
$node= dom_import_simplexml($this);
$no = $node->ownerDocument;
$node->appendChild($no->createCDATASection($cdata_text));
return true;
}
}
[...]過程中的一些總結:使用Slack和Hubot搭建自己的機器人使用Datadog服務監控php-fpm程序資訊使用SimpleXML輸出rss內容[...]
[...]過程中的一些總結:使用Slack和Hubot搭建自己的機器人使用Datadog服務監控php-fpm程序資訊使用SimpleXML輸出rss內容[...]
[...]过程中的一些总结:使用Slack和Hubot搭建自己的机器人使用Datadog服务监控php-fpm进程信息使用SimpleXML输出rss内容[...]
[...]}); 算法网首页精品教程数据结构时间复杂度空间复杂度树二叉查找树满二叉树完全二叉树平衡二叉树红黑树B树图队列散列表链表算法基础算法排序算法贪心算法递归算法动态规划分治算法回溯法分支限界法拓扑排序字符串相关算法数组相关算法链表相关算法树相关算法二叉树相关算法LeetCodeOnline Judge剑指offer架构设计设计模式创建型单例模式工厂模式原型模式建造者模式结构型组合模式外观模式装饰模式[...]
[...]}); 算法网首页精品教程数据结构时间复杂度空间复杂度树二叉查找树满二叉树完全二叉树平衡二叉树红黑树B树图队列散列表链表算法基础算法排序算法贪心算法递归算法动态规划分治算法回溯法分支限界法拓扑排序字符串相关算法数组相关算法链表相关算法树相关算法二叉树相关算法LeetCodeOnline Judge剑指offer架构设计设计模式创建型单例模式工厂模式原型模式建造者模式结构型组合模式外观模式装饰模式[...]
[...]过程中的一些总结:使用Slack和Hubot搭建自己的机器人使用Datadog服务监控php-fpm进程信息使用SimpleXML输出rss内容[...]
[...]过程中的一些总结:使用Slack和Hubot搭建自己的机器人使用Datadog服务监控php-fpm进程信息使用SimpleXML输出rss内容[...]
[...]过程中的一些总结:使用Slack和Hubot搭建自己的机器人使用Datadog服务监控php-fpm进程信息使用SimpleXML输出rss内容[...]
[...]过程中的一些总结:使用Slack和Hubot搭建自己的机器人使用Datadog服务监控php-fpm进程信息使用SimpleXML输出rss内容[...]