基于C# 网站地图制作

2019-05-12 02:15:51丽君

StreamWriter WriteXMLFile = null;
string FilePath = Server.MapPath("sitemap.xml");
XMLFile = new FileInfo(FilePath);
WriteXMLFile = XMLFile.CreateText();
//下面两句话必须写,而且不能做任何修改
WriteXMLFile.WriteLine("<?xml version="1.0" encoding="UTF-8"?>");
WriteXMLFile.WriteLine("<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">");
getXMLSitemapData(WriteXMLFile);
WriteXMLFile.WriteLine("</urlset>");//别忘了这句话
WriteXMLFile.Close();
}
createXMLSitemap()的实现如下:
public void getXMLSitemapData(StreamWriter writerFile)
{
string classTableName = "ArticleClass";
string articleItemTableName = "ArticleItem";
string connectionString = ConfigurationManager.AppSettings["SQLConnString"].ToString();
SqlConnection conn = new SqlConnection(connectionString);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
//查询大类信息
SqlDataAdapter classDataAdpt = new SqlDataAdapter("SELECT Id, Classname FROM " + classTableName, connectionString);
DataSet classDataSet = new DataSet();
classDataAdpt.Fill(classDataSet, classTableName);
for (int i = 0; i < classDataSet.Tables[0].Rows.Count; i++)
{
string tempsql = "SELECT Id, ArticleTitle, Parentid FROM " + articleItemTableName + " where Parentid = " + classDataSet.Tables[0].Rows[i][0].ToString();
SqlCommand cmd = new SqlCommand(tempsql, conn);
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (rdr.HasRows)
{
int subClassId = 0;
while (rdr.Read())
{
//处理大类信息,
if (subClassId != int.Parse(rdr[0].ToString()))
{
subClassId = int.Parse(rdr[0].ToString());
writerFile.WriteLine("<url>");
writerFile.WriteLine("<loc>" + "http://www.chituwang.com/Article/index.aspx?parentid=" + rdr[2].ToString() + "</loc>");
writerFile.WriteLine("<lastmod>" + DateTime.Now.ToShortDateString() + "</lastmod>");
writerFile.WriteLine("<changefreq>daily</changefreq>");
writerFile.WriteLine("<priority>0.5</priority>");
writerFile.WriteLine("</url>");
}
//处理文章信息
writerFile.WriteLine("<url>");
writerFile.WriteLine("<loc>" + "http://www.chituwang.com/Article/index.aspx?articleid=" + rdr[0].ToString() + "</loc>");
writerFile.WriteLine("<lastmod>" + DateTime.Now.ToShortDateString() + "</lastmod>");
writerFile.WriteLine("<changefreq>monthly</changefreq>");
writerFile.WriteLine("<priority>0.4</priority>");
writerFile.WriteLine("</url>");
}
}
rdr.Close();
}
}
通过上面两个小节的介绍,网页和XML两种形式的网站地图就生成了。
四、网站地图的提交
向Google提交网站地图:
  https://www.google.com/webmasters/tools/login?hl=zh_CN