当前位置:编程学习 > C#/ASP.NET >>

asp.net 动态生成google 的sitemap(站点地图)

求个 asp.net 动态生成google 的sitemap. 如有代码提供更好.或者例子..

例子可发邮箱 dareonly@163.com


谢谢 --------------------编程问答-------------------- 如果有答案里我也希望借鉴一下,谢谢。 --------------------编程问答--------------------
    /// <summary>
    /// 生成google网站地图
    /// </summary>
    /// <returns></returns>
    public static bool BuildGoogleSitemap()
    {
        try
        {
            string RootDirectory = AppDomain.CurrentDomain.BaseDirectory;
            XmlTextWriter Writer = new XmlTextWriter(HttpContext.Current.Server.MapPath("~/GoogleSitemaps.xml"), Encoding.GetEncoding("utf-8"));
            Writer.Formatting = Formatting.Indented;
            Writer.WriteStartDocument();
            Writer.WriteStartElement("urlset", "http://www.google.com/schemas/sitemap/0.84");
            //遍历扫描网站所有文件
            showfiles(RootDirectory, Writer);

            Writer.WriteEndElement();
            Writer.WriteEndDocument();
            Writer.Close();
            return true;

        }
        catch (Exception err)
        {
            return false;
        }
    }


    //遍历扫描网站所有文件
    static void showfiles(string dirpath, XmlTextWriter Writer)
    {
        bool IsRead = true;
        string[] NotRead ={ "App_Data", "Bin", "fckeditor", "js", "MyAdmin", "PowerChatRoom" };//排除这些文件夹
        foreach (string s in NotRead)
        {
            string dirname = dirpath.Substring(dirpath.LastIndexOf(@"\") + 1);
            if (dirname == s)
            {
                IsRead = false;
                break;
            }
        }
        if (!IsRead)
            return;

        try
        {
            DirectoryInfo dir = new DirectoryInfo(dirpath);
            foreach (FileInfo f in dir.GetFiles())
            {
                string path = dir.FullName.Replace(AppDomain.CurrentDomain.BaseDirectory, "");//文件相对目录
                //HttpContext.Current.Response.Write(AppDomain.CurrentDomain.BaseDirectory + "**********" + dir.FullName + "<br>");
                Writer.WriteStartElement("url");

                Writer.WriteStartElement("loc");
                StringBuilder sb = new StringBuilder("/" + path + "/" + f.Name);
                sb.Replace("//", "/").Replace(@"\", "/");
                Writer.WriteString(ConfigurationManager.AppSettings["WebSiteUrl"].ToString() + sb.ToString());
                Writer.WriteEndElement();

                Writer.WriteStartElement("lastmod");
                Writer.WriteString(string.Format("{0:yyyy-MM-dd}", f.LastWriteTime));
                Writer.WriteEndElement();

                Writer.WriteStartElement("changefreq");
                Writer.WriteString("always");//更新频率:always:经常,hourly:小时,daily:天,weekly:周,monthly:月,yearly:年 
                Writer.WriteEndElement();

                Writer.WriteStartElement("priority");
                Writer.WriteString("0.8");//相对于其他页面的优先权,此值定于0.0 - 1.0之间 
                Writer.WriteEndElement();

                Writer.WriteEndElement();
            }
            foreach (DirectoryInfo d in dir.GetDirectories())
            {
                showfiles(d.FullName, Writer);
            }
        }
        catch (Exception) { }
    }

文章来源:http://study.myweb08.cn/2_ASP.net.aspx  --------------------编程问答-------------------- 学习了! --------------------编程问答-------------------- --------------------编程问答-------------------- http://www.15admin.com/edu/Programming/02/2010-05-16/23977.html --------------------编程问答-------------------- 就是一个对xml的添加的问题,按照google sitemap的格式来写数据就行了 --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,