为 FrontPage Web 站点创建一个 RSS 提要

来源:百度文库 编辑:神马文学网 时间:2024/04/25 06:21:43
发布日期: 2006-3-15 | 更新日期: 2006-3-15
Lisa Wollin
Microsoft Corporation
适用于:
Microsoft Office FrontPage 2003
摘要: 了解 RSS 以及如何以编程方式为 FrontPage 2003 Web 站点创建一个 RSS 文件。本文附带的下载程序包含一个 VBA 项目和一个 XSLT 文件,您可以使用它们生成和显示 RSS 提要。
下载RSSTool.exe。

本页内容
创建一个 RSS 提要入门
以编程方式生成一个 RSS 文件
小结
其他资源
创建一个 RSS 提要入门
如果您稍关注一下 Internet,很可能就听说过 RSS,也许会决定要为您的 Web 站点创建一个 RSS 提要。RSS 提要是一个扩展标记语言(Extensible Markup Language,XML)文件,用户使用该文件来更新 Web 站点的内容。RSS 提要经常与网络日记(博客)联合使用,但是您也能够将它用于任何 Web 站点。
注 XML 与 HTML 相似,也是一种为 Internet 设计的标记语言。但是,HTML 与 XML 不同的是,前者旨在定义 Web 页的格式,而后者旨在描述数据。您能够使用 XML 开发自定义的架构。World Wide Web Consortium 定义了 XML 和 HTML 的规范。有关 XML 和 XML 规范的更多信息,请参阅Extensible Markup Language (XML)。
一般而言,经常发布信息的站点(例如新闻站点)会提供 RSS 提要,因为它使客户能够跟踪新发布的信息。如果您为客户提供了 RSS 提要,那么客户就能够使用新闻阅读器或新闻聚合器来订阅提要。之后,每当您发布新信息并更新 RSS 文件时,新闻阅读器都会自动通知订阅提要的客户。
如果您经常更新一个 Web 站点的内容,例如文章或故事,那么您可能需要一个 RSS 提要来帮助客户跟踪更新内容。本文解释 RSS 后端的 XML,并提供一个 Microsoft Office FrontPage 2003 Visual Basic for Applications (VBA) 项目,您可以使用该项目以编程方式为 FrontPage Web 站点生成一个 RSS 提要。本文的下载程序包含一个扩展样式表语言转换(Extensible Stylesheet Language Transformation,XSLT)文件,您能够使用该文件在浏览器中显示 RSS XML 文件。
注 XSLT 是为了将 XML 文档转换为其他文档而设计的一种语言。有关 XSL 和 XSLT 的更多信息,请参阅Extensible Stylesheet Language (XSL) 和XSL Transformations (XSLT)。
什么是 RSS?
RSS 是 Really Simple Syndication(真正简易聚合)的缩写,但是也有一些站点将它解释为 Rich Site Summary(丰富站点摘要)或 RDF Site Summary(RDF 站点摘要)。RSS 基本上是一个 XML 文档,它符合一个特定的 XML 架构。RSS 架构有 7 种格式,每种格式之间略有不同。为了简化您的工作,本文将使用最新的 2.0 版本。
Internet 上有很多解释 RSS 以及各种 RSS 架构的资源。以下是一些可能对您有用的资源:

什么是 RSS?

RSS 简介

RSS 内容发布者和 Web 管理员指南
创建一个 RSS 文件
各种组织创建了一些不同版本的 RSS 架构。本文将解释最新版本 (2.0) 的 RSS 架构。为了帮助您理解架构的工作原理,以及如何创建您自己的 RSS 提要,以下代码显示 RSS 2.0 的基本 XML 文件。

以上代码展示的是针对 RSS 2.0 架构的 XML 简化版。至于元素的完整列表和元素引用,请参阅Harvard Law 网络日记 Web 站点上详尽的RSS 2.0 规范参考。
简而言之,每个依附 RSS 2.0 架构的 RSS 提要都包含一个 channel 元素。channel 元素的一些子元素是可选的,但是 title、link 和 description 是必需的。channel 元素可以包含一个或多个 item 元素。item 元素的许多子元素也是可选的,但是 title、link 和 description 同样是必需的。前面的代码提供了 channel 和 item 元素所需的元素以及两个可选元素 — dc:creator 和 pubDate 元素 — 这两个元素可能会有用。
如果将一个 RSS 提要看作是一份报纸,那么 channel 元素将包含报纸名、报纸 Web 站点的链接和报纸说明。channel 元素中的每个 item 元素通过包含文章的标题、文章在线访问链接、文章说明以及作者名,代表了报纸中不同的文章。
您能够在 FrontPage、Microsoft Visual Studio、Microsoft 记事本、其他的 XML 编辑器或文本编辑器中手动创建并编辑 RSS 文件。除此之外,一些 RSS 工具也能够为您生成 RSS XML。本文包含一个 VBA 工具,您可以通过它在 FrontPage Web 站点内生成一个 RSS XML 文件。您可以在该工具内裁剪代码以迎合您的特定需求。
大多数 RSS 文件都将最新信息置于文件顶部。这使订户能够很容易地发现新信息。然而,您还能够使用 XSLT 对项目元素按日期进行排序,这也是本文中 VBA 项目包含的 RSS 示例所做的事情。
发布一个 RSS 文件
创建 RSS 文件之后,您需要将它上载到 Web 站点。然后,您需要创建一个从 Web 站点连接到该文件的链接,以便客户能够订阅它。大多数提供 RSS 提要的站点使用一个类似于图 1 这样的图标,MSDN 使用的正是这种图标。

图 1. 一个 RSS 图标示例
您可以使用各种各样的图标来代表 RSS 文件。有关更多可以使用的图标,请参阅 RSS 规范 Web 站点上的RSS 图标。
在 Web 站点上提供了到 RSS 文件的链接后,您需要做的只是在发布新信息时(每天、每周、每月或任何您方便的时间)更新该文件。然而,您应该总是使用同一个文件名,而不是每次更新 RSS XML 时都使用一个不同的文件名。如果使用不同的文件名,那么订阅 RSS 提要的客户将必须获得这个新文件的 URL,才能更新他们的新闻聚合器。所以只更新文件并重用同一个文件名即可。
本小节提供了有关创建自己的 RSS 提要所需了解的知识。本文其他小节将解释如何使用下载程序中包含的 VBA 工具,以及如何设置您的 Web 站点以使用该工具生成 RSS 文件,其中还会说明生成该工具的 VBA 代码和 RSS XML 文件附带的 XSLT。
返回页首
以编程方式生成一个 RSS 文件
对于以编程方式生成 RSS 提要,有许多可行的解决方案。您可以创建一个在服务器上生成 RSS 文件的 ASP 解决方案,或者创建一个通过本地计算机上的文件系统生成 RSS 提要的工具。本文包含了一个工具,您可以使用它为 FrontPage Web 站点生成一个 RSS 提要。本小节解释如何安装和使用该工具以及附带文件。还将介绍要使用该工具及其创建的 XML,应该怎样在您的站点中设置页面。
要使用 RSS 工具,请下载和安装本文包含的文件。下载包中包含表 1 列出的文件。
表 1. RSS 工具下载的内容
文件名 说明
frmRssProps.frm
VBA 窗体
frmRssProps.frx
VBA 窗体的支持文件
rss.xsl
RSS XML 文件的 XSLT 文件
注 该工具只能用于 FrontPage 2003,不能用于 FrontPage 的早期版本。
安装 RSS 工具
在本地计算机上安装文件之后,您就能够将 VBA 窗体导入到一个 VBA 项目中。
将 VBA 窗体导入到一个 VBA 项目中
1.
启动 FrontPage。
2.
打开 Visual Basic 编辑器。(在 Tools 菜单上,移动到 Macro,然后单击 Visual Basic Editor;或按 ALT+F11。)
3.
在 Visual Basic 编辑器的 File 菜单上,单击 Import File。
4.
定位到安装下载文件的位置,选择名为 frmRssProps.frm 的文件。
5.
单击 Open。
完成这些步骤后,Project Explorer 中将列出该窗体。如果您从未在 Visual Basic 宏项目中添加任何其他文件或模块,那么您的 Project Explorer 会类似于图 2 所示的浏览器。

图 2. Visual Basic 编辑器项目浏览器
设置 RSS 工具
为了使 RSS 工具简单易用,以下指导将提供一个简单的宏来显示窗体,并解释如何在工具栏中添加一个运行宏的按钮。
添加一个显示 RSS 工具窗体的宏
1.
在 Visual Basic 编辑器中,双击 Project Explorer 中的 Module1 模块,打开该模块。
2.
在 Module1 代码的末尾粘贴以下代码。
Public Sub ShowRssForm() Dim frm As frmRssProps Set frm = New frmRssProps frm.Show Set frm = Nothing End Sub
3.
保存模块并关闭 Visual Basic 编辑器。
将一个按钮添加到工具栏中
1.
在 FrontPage 中右键单击任意一个工具栏,并单击 Customize。或者,您可以单击 Tools 菜单上的 Customize。
2.
在 Customize 对话框的 Commands 选项卡中,从 Categories 列表中选择 Macros。
3.
在 Commands 列表中,单击 Custom Button 并将其拖放到任意一个工具栏上。
4.
右键单击您刚才添加的按钮,并单击 Assign Macro。
5.
在宏列表中选择 ShowRssForm。
6.
单击 OK,然后单击 Close。
设置您的 Web 页
VBA RSS 工具使用元数据来插入页面说明,因此为了使 RSS 提要中出现该说明,您需要将一个 META 元素添加到每个页面中。以下代码显示的是添加 META 元素的示例。

您应该注意,仅当希望 VBA RSS 工具在 RSS 提要中包含页面说明时,才需要使用 META 数据。如果您的页面不包含用于页面说明的 META 数据,VBA RSS 工具仍然会运行,并按预期的方式生成一个 RSS 提要。此外,还需注意,将说明 META 数据只添加到您希望在 RSS 提要中出现的页面,这是因为 VBA RSS 工具会检查每个页面的日期以决定是否将其添加到 RSS XML 文件中。
使用 RSS 工具
既然已经设置好工具,而且您的 Web 页也准备就绪了,您就可以生成 RSS XML 文件了。
创建一个 RSS 提要
1.
单击您之前添加的工具栏按钮。
注 如果您单击工具栏按钮后没有任何反应,请查看前面的部分,并确保您将 ShowRssForm 宏指派给了该按钮。
2.
按需要设置选项。在 RSS 工具选项小节中将解释这些选项。
3.
单击 Create RSS File。
RSS 工具窗体
RSS 工具窗体如图 3 所示。

图 3. RSS 工具的 VBA 窗体
RSS 工具选项
表 2 解释每个窗体选项。
表 2. 创建 RSS 提要窗体选项
选项名 说明
Create feed for all files in the Web site
默认值。当您选择此选项时,RSS 工具将创建一个包含 Web 站点中所有文件(以 .htm、.html、.asp 或 .aspx 为扩展名)的 RSS 提要。该提要将忽略其他所有文件,这意味着图像文件和支持文件将不会包含在提要中,例如 JavaScript 代码文件和级联样式表 (Cascading Style Sheet)。
Create feed only for files in the folder specified below
窗体加载时,它将创建一个包含所有文件夹的列表,但是其中不包括 Web 站点中的隐藏文件夹。当您选择此选项时,必须指定含有某些文件的文件夹,这些文件是您希望在 RSS 提要中包含的文件。
Number of days since page was last updated
此选项允许您限制 RSS 提要只包含在指定天数内更新的文件。默认值是 7 天(一星期),但是您可以指定更多的天数。指定值为 -1 将强制 RSS 提要包含所有文件,而不管文件最近一次更新是在什么时候。
Name of the Web site or title of the RSS feed
指定 Web 站点名。如果为空,工具将使用一个默认值。
URL or address of the Web site
指定 Web 站点的 URL。如果为空,工具将使用一个默认值。
Description for the RSS feed
指定 RSS 提要的介绍文本。如果为空,工具将使用一个默认值。
理解代码
下载程序中包含的 RSS 工具通过 FrontPage VBA 对象模型生成 RSS XML,并创建 RSS 文件。大部分窗体代码很简单。有三个实例的代码可能需要一些额外的解释。以下小节将解释这三个实例。
列举文件夹
在 FrontPage 第一次显示窗体时,窗体代码将循环访问活动 Web 站点中的文件夹,并将文件夹名添加到列表框中,如以下代码所示。
For Each objFolder In objSite.AllFoldersintLocation = InStr(1, Mid(objFolder.Name, 1, 1), "_")If Not objFolder.IsRoot And intLocation = 0 ThenlstFolders.AddItem objFolder.NameEnd IfNext
如以上代码所示,如果文件夹或者是根文件夹,或者是 FrontPage 所需的一个隐藏文件夹(文件夹名以下划线“_”开头),那么代码将不会将该文件夹添加到列表框中。
将相应文件添加到提要中
当代码连接 XML 字符串时,将循环访问整个 Web 站点或选中文件夹中的文件,然后决定是否将某个文件添加到提要中。以下示例包含的是将文件添加到提要中的代码。
For Each objFile In objFilesIf objFile.Extension = "htm" Or objFile.Extension = "html" Or _objFile.Extension = "asp" Or objFile.Extension = "aspx" ThenstrPubDate = objFile.Properties("vti_timelastmodified")intPubDate = strPubDateIf txtDate = -1 Or intPubDate >= intDate ThenstrTitle = objFile.TitlestrUrl = Replace(objFile.Url, objWeb.Url & "/", "")strDescription = objFile.MetaTags("Description")strXml = strXml & vbTab & vbTab & "" & vbCrLfstrXml = strXml & vbTab & vbTab & vbTab & "" & vbCrLfstrXml = strXml & vbTab & vbTab & vbTab & "" & _strUrl & "" & vbCrLfstrXml = strXml & vbTab & vbTab & vbTab & "" & _objFile.Properties("vti_author") & "" & vbCrLfstrXml = strXml & vbTab & vbTab & vbTab & "" & _strPubDate & "" & vbCrLfstrXml = strXml & vbTab & vbTab & vbTab & "" & _strDescription & "" & vbCrLfstrXml = strXml & vbTab & vbTab & "" & vbCrLfEnd IfEnd IfNext
在以上代码中,在代码将一个文件添加到提要之前,该文件必须满足两个条件。第一个条件是,该文件的扩展名必须是 .htm、.html、.asp 或 .aspx。第二个条件是,当前日期与页面最近一次更新日期之差必须小于或等于 Number of days since page was last updated 选项的值。但是,如果 Number of days since page was last updated 选项包含的值为 -1,那么无论更新日期如何,代码都会将文件添加到提要中。
以编程方式创建和保存一个 XML 文件
最后,RSS 工具将创建一个 XML 文件。但是,因为 FrontPage 不能以编程方式将 XML 字符串粘贴到文件中,所以代码将创建 HTML 页类型的文件,然后通过 DocumentHTML 属性粘贴生成的 XML 字符串。接下来,代码将使用 Move 方法重命名扩展名为 .htm 的文件。以下代码显示了这些操作是如何完成的。
Private Sub CreateXMLPage(Xml As String)Dim objFile As WebFileSet objFile = ActiveWeb.AllFiles.Add("rss.htm", True)objFile.OpenActiveDocument.DocumentHTML = XmlActivePageWindow.Save TrueActivePageWindow.CloseobjFile.Move "rss.xml", False, TrueEnd Sub
您可以在下载程序中包含的 VBA 窗体文件中查看这些小节中讨论的代码,以及 RSS 工具的其余代码。将文件导入 VBA 项目后,您就能够在 Visual Basic Editor 中访问窗体及其所有代码。
返回页首
小结
在 Web 站点中包含 RSS 提要几乎成为了一种标准,而且将来 RSS 提要的使用会越来越普遍。您可以通过 FrontPage、另一个 XML 编辑器或文本编辑器手动生成 RSS 文件,或者您也可以通过一个 ASP 页面或另一种工具以编程方式创建 RSS 文件。以编程方式为您的 FrontPage Web 站点创建一个 RSS 提要有很多可行的方法,本文包含的 RSS 工具只是其中的一种方法。
返回页首
其他资源
许多在线资源提供了有关 RSS 的更多详细信息,并解释了如何创建您自己的提要。以下只是其中一些可用资源。

RSS Specifications: Everything You Need to Know About RSS

Making an RSS Feed

Displaying RSS Feeds
有关 FrontPage 和 Microsoft Office 更多的开发资源,请访问以下站点:

Microsoft Office Developer Center:FrontPage

Microsoft Office Developer Center
转到原英文页面
_xyz