既然你已经知道了RSS和RDF是关于什么的,那么是开始工作的时候了。我将会以坐在窗户附近的桌子上然后在一页纸上漫无目的地乱画开始,直到我逐渐地准确勾画出我的应用程序应该做什么事情为止(实际上,在这个实例中,需求实际上是非常基本的):
1.应用程序必须支持一或多个RSS兼容的新闻信源。在启动阶段,应用程序应该获取这些新闻信源的最新版本,解析它们然后以一种易于阅读的方式显示它们的内容。SQLite数据库是存储这些信源列表的较好的选择。
2.用户应当能够控制她/他从每个信源挑选的消息的数量。举例而言,一个用户可能想显示比商业新闻更多的科学和健康新闻。
3 .应用程序应该为用户提供一个基于Web的界面以增加和删除新闻信源。该界面将使用PHP的SQLite API来在SQLite数据库文件上运行适当的SQL查询和修改存储于数据库中的信息。
请记住这些需求,设计一个简单的数据库表格以保存(用户可定制的)RSS新闻信源列表是可能的。下面是它可能看上去的样子:
CREATE TABLE rss ( id INTEGER NOT NULL PRIMARY KEY, title varchar(255) NOT NULL, url varchar(255) NOT NULL, count INTEGER NOT NULL );
从上面的表格可以看出,很明显每个新闻信源将会有三个属性:描述性题目、信源自身的URL以及指示你愿意在你自己定制的新闻页面上显示多少条信源的信息的值。让我们增加一些数据来开始做些事情。
INSERT INTO rss VALUES(1, 'Slashdot', 'http://slashdot.org/slashdot.rdf', 5); INSERT INTO rss VALUES(2, 'Wired News', 'http://www.wired.com/news_drop/netcenter/netcenter.rdf', 5); INSERT INTO rss VALUES(3, 'Business News', 'http://www.npr.org/rss/rss.php?topicId=6', 3); INSERT INTO rss VALUES(4, 'Health News', 'http://news.bbc.co.uk/rss/newsonline_world_edition/health/rss091.xml', 3); INSERT INTO rss VALUES(5, 'Freshmeat', 'http://www.freshmeat.net/backend/fm-releases.rdf', 5);
你可以使用SQLite命令直接从schema文件rss.sql中来创建所有这些。如果你仍然在使用来自第九章的命令行客户端,那么请从中读取。实际上,现在是你下载用于该应用程序的所有源代码的好时机,这样可以使得你在完成该教程的过程中容易地检查和参考。请注意,你将需要一个支持PHP 5的Web服务器来运行该代码。