XML制作RSS源

什么是RSS源?看到这片文章的人相信都知道,自己博客首页不就是一个吗?

好吧,先来一个简单点的,直接就是死代码:具体怎样使用就看RSS使用标准吧!

<?xml version = "1.0" encoding = "utf-8"?>
<rss  version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
	<channel>
		<title>
		  优惠信息
		</title>
		<link>
		  http://localhost/test/01.php
		</link>
		<description>
			这里有最新优惠信息
		</description>
	</channel>
	<item>
		<title>
		  优惠信息1
		</title>
		<description>
			这里有最新优惠信息1
		</description>
	</item>
	<item>
		<title>
		  优惠信息1
		</title>
		<description>
			这里有最新优惠信息1
		</description>
	</item>
</rss>

效果:再火狐浏览器和ie显示正常,再google上显示不太好

这个简答实现了,来个复杂的吧,动态生成RSS

RSS模板

<?xml version="1.0" encoding="utf-8"?>
<!-- rss输出模板 用PHP动态制造channel,和item -->
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/"></rss>

动态生成:

<?php
/***
====笔记部分====
连接数据库,动态生成Rss feed

连数据库,取最新的10条商品,输出XML feed
***/

class feed {
    public $title = '';  // channel的title
    public $link = '';   // channel的link
    public $description = '';   // channel的descrition;
    public $items = array();

    public $template = './feed.xml'; //xml模板
    protected $dom = null;
    protected $rss = null;

    public function __construct() {
        $this->dom = new DomDocument('1.0','utf-8');
        $this->dom->load($this->template);
        $this->rss = $this->dom->getElementsByTagName('rss')->item(0);
    }

    // 调用createItem,把所有的item节点都生成,再输出
    public function display() {
        $this->createChannel();
        $this->addItem($this->items);
        header('content-type: text/xml');
        echo $this->dom->savexml();
    }

    // 封装createChannel方法,用来创建Rss的唯一且必须的channel节点
    protected function createChannel() {
        $channel = $this->dom->createElement('channel');
        $channel->appendChild($this->createEle('title',$this->title));
        $channel->appendChild($this->createEle('link',$this->link));
        $channel->appendChild($this->createEle('description',$this->description));

        $this->rss->appendChild($channel);
    }

    // 封装addItem方法,把所有的商品增加到RSS里面去
    // $list是商品列表,是二维数据,每一行是一个商品
    protected function addItem($list) {
        foreach($list as $goods) {
            $this->rss->appendChild($this->createItem($goods));
        }
    }

    // 封装一个方法,用来造item 比如link description等等
    protected function createItem($arr) {
        $item = $this->dom->createElement('item');
        foreach($arr as $k=>$v) {
            $item->appendChild($this->createEle($k,$v));
        }

        return $item;
    }

    // 封装一个方法,直接创建开如 <ele>some text</ele>这样的节点
    protected function createEle($name,$value) {
        $ele = $this->dom->createElement($name);
        $text = $this->dom->createTextNode($value);
        $ele->appendChild($text);

        return $ele;
    }
}

$conn = mysql_connect('localhost','root','');
mysql_query('set names utf8',$conn);
mysql_query('use test');

$sql = 'select ver as title,content as description from smth order by id desc limit 8';

$rs = mysql_query($sql,$conn);

$list = array();
while($row = mysql_fetch_assoc($rs)) {
    $list[] = $row;
}

$feed = new feed();
$feed->title = '布尔商城';
$feed->link = 'http://localhost/bool';
$feed->description = '这是商城的优惠信息集合';
$feed->items = $list;
$feed->display();

生成效果,并查看源码:

时间: 2024-10-12 12:55:26

XML制作RSS源的相关文章

为网站加入Drupal星球制作RSS订阅源

目前中文 Drupal 星球的版块还未成立,但大家的积极性挺高,不少站长都已经调整好自己的网站,生成了可供Drupal Planet 使用的RSS订阅源. 如果你也想让网站做好准备,可以不必再花上不少的时间去了解要求和流程,只需要跟着本文了解相关规则.完成几步相关的操作就好了.(Drupal Planet 的官方要求和说明可参见:Planet Drupal guidelines) 制作RSS订阅源:为需要加入Drupal Planet 的内容生成独立的RSS 订阅源(路径可自定义,确保订阅源中的

C#读取RSS源,并利用Solr索引

折磨我几天的问题今天终于解决了,分享一下近期solr使用的一些经验. 本来是用nutch在爬取页面,可是客户需要爬取RSS,而且可以识别那些页面是通过RSS源抓取出来的.nutch虽然自带解析RSS的插件,但是有些RSS解析不了,也不好控制,更重要的抓取后和普通页面就没什么太大的区别了,不能识别不能判断是由哪个rss源抓取出来的.因为上面原因,所以就自己用C#写了一个配合Solr抓取RSS的工程. 一切实现好后,客户非常满意,我也觉得做的还不错,可是过了一段时间后发现nutch在solrdedu

RSS源推荐大全(it版)

虽然早就有人说rss已死,但是喜欢rss的人还是相当的多,最近使用鲜果连播的安卓版,感觉非常爽,自己也喜欢收集一下rss源,在这里推荐一些比较适合it朋友的rss 互联网资讯类 译言网,顺便练练英语:http://www.yeeyan.org/main/rss,最好订阅子频道 ifanr 爱范儿(http://www.ifanr.com/feed)知名的移动产品Blog 互联网那些事(http://www.alibuybuy.com/),质量比较不错,我基本上都会认真的看一些 36氪(http:

自己订阅的rss源(持续更新)

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

Spring MVC生成RSS源

下面的示例演示如何使用Spring Web MVC框架生成RSS源. 首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一个名称为 GenerateRSSFeed 的动态WEB项目. 在 com.yiibai.springmvc 包下创建三个Java类:RSSMessage, RSSFeedViewer 和 RSSController. 从相同的maven存储库页面下载 Rome 库及其依赖项rome-utils,j

[ASP.Net]用RssToolKit2.0解析RSS,制作RSS阅读器

在Python要读取RSS可以使用FeedParser.那么在ASP.net里面呢?难道我们要自己发出request去取得XML,并且自己用XmlReader去解析XML里面的DOM对象吗? 当然不用这么麻烦啰. 在ASP.net里面,我们可以使用RssToolkit 2.0,这是一个开放源代码(Open Source)的RSS处理函数库.里面提供了很完善的RSS处理函数.你可以自己烧制RSS feed,也可以透过它去解析RSS. HI!我是finalevil,这是我的分站, 欢迎您订阅我的RS

Linux制作本地源

Linux制作本地源 由于项目需要在Ubuntu64位上搭建运行环境,需要安装很多软件,下载需要大量时间,并且需要安装的计算机可能由于条件限制无法上网,因此我们就需要制作一个本地源.一下是制作本地源需要的步骤: 1.拷贝所需安装软件包 通过apt-get安装的软件都在/var/cache/apt/archives目录下,在/目录下新建packages目录,并将所有的软件包拷贝到该目录下.(可以拷贝到任意路径下的目录里,该步骤主要是将所有软件包拷贝到一处,便于以后打包) 2..生成软件包信息(含有

CozyRSS开发记录21-默认RSS源列表

CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更新: 分别通知主窗口和RSS订阅内容栏: 主窗口负责把侧滑菜单缩回去: 内容栏里更新内容: 最终效果一般般,但是能用,不过有时候会异常,后面再来看吧:

centos制作yum源

制作yum源 有多种 1.网络的yum源 baseurl=http://mirrors.sohu.com/centos/$releasever/updates/$basearch/ gpgcheck=1 baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ gpgcheck=1 还有新浪和阿里的yum源 2.直接下载163给的yum源 首先要备份原来系统自带的yum源 mv /etc/yum.repos.d/Ce