ASP.NET生成Google网站地图的代码 |
本文标签:Google,网站地图 复制代码 代码如下: /// <summary> /// 生成google网站地图 /// </summary> /// <returns></returns> public static boolBuildGoogleSitemap() { 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) { } } |