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

<..========================================================
==                                                       ==
==                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(文件名),返回该文件的最后修改时间

【扩展】
    本例可以进一步扩展以增强其实用性,比如可以更改查找的目录和文件后缀,以识别不同的文件,或者进一步提取更多的信息,进而能够做出更多的功能。
..>

posted on 2006-08-25 17:48  Wisdom-zh  阅读(508)  评论(0编辑  收藏  举报

导航