您的位置:首页 > 运维架构 > 网站架构

Nuva 示例代码(每日一帖)之 生成网站地图

2006-08-25 17:48 639 查看
<..========================================================
==                                                       ==
==                Macrobject Nuva Samples                ==
==                                                       ==
==      Copyright (c) 2004-2006 Macrobject Software      ==
==                                                       ==
==                  ALL RIGHTS RESERVED                  ==
==                                                       ==
==               http://www.macrobject.com               ==
==                                                       ==
========================================================..>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<.foreach(fileName = System.File.Find('c:\www.macrobject.com\*.htm', 'F', true)).>
<url>
<loc>http://www.macrobject.com/[.
var fn = fileName.Replace('c:\www.macrobject.com\', '')
? fn.Replace('\', '/').]</loc>
<lastmod>[.
var ft = System.File.GetTime(fileName)
ft = ft.Left(ft.IndexOf(' '))
? ft.RegexReplace('\b\d\b', '0$0').]</lastmod>
<changefreq>weekly</changefreq>
<..<priority>0.8</priority>..>
</url>
<./foreach.>
</urlset>

<..
【简介】
本例是一个根据给定的目录生成 Google 网站地图的程序。我们的网站地图(http://www.macrobject.com/sitemap.xml)就是使用该程序自动生成的。

本例的程序能够查找指定目录的 Html 文件,并且能够获取这些 Html 文件的最后修改时间,从而能够根据 Google 的格式要求生成相应的网站地图。

Google 的网站地图是 Google 为了便于其爬虫分析所爬网站而制定的一种 Xml 文件格式。采用这种文件格式的网站地图的好处是省去 Google 分析网站结构以及更新信息的时间,从而便于 Google 爬虫的访问。

Google 网站地图的相关信息请访问:http://www.google.com/support/webmasters/bin/answer.py?answer=40318

【看点】
1、本例演示了 Nuva 语言在模板中的应用
在 Nuva 模板中,Nuva 代码可以嵌入到文本中,嵌入的 Nuva 代码能够执行,而文本则采用原文输出的方式,二者能够结合,从而产生更为复杂的输出。

在模板中的 Nuva 代码嵌入标记分为两种,分别用尖括号(<. .>)和方括号([. .])组成的两种模板标记,尖括号的这种能够删除行首空格和行尾空格换行。

2、本例用到了字符串的操作,如 Replace、Left、IndexOf、RegexReplace:
StringObject.Replace(旧串, 新串),返回该字符串替换后的结果
StringObject.Left(长度),返回该字符串左边的子串
StringObject.IndexOf(子串),返回该子串的位置(首字符的位置)
StringObject.RegexReplace(正则串, 新串, [选项]),返回该字符串替换后的结果
这是一个字符串正则操作,Nuva 语言采用 Perl 兼容的正则表达式
选项是可选的,采用单个字符表示选项,如下:
i:IgnoreCase
m:MultiLine
s:SingleLine
x:IgnorePatternWhitespace
本例中用到的正则操作是为了格式化时间字符串

3、本例用到了文件的操作,如 GetTime:
GetTime(文件名),返回该文件的最后修改时间

【扩展】
本例可以进一步扩展以增强其实用性,比如可以更改查找的目录和文件后缀,以识别不同的文件,或者进一步提取更多的信息,进而能够做出更多的功能。
..>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: