這兩天給自己網站寫了提交sitemap的代碼,如果是新手,請過來看,如果是高手,可以不用看。
aspx代碼
Code
1 <tr>
2 <td class="detailright" style="width:150px;">
3 產生www開頭的課程:
4 </td>
5 <td class="detailcontent">
6 <asp:TextBox runat="server" ID="txtWWWCourseStart" />
7 -
8 <asp:TextBox runat="server" ID="txtWWWCourseEnd" />
9 <asp:Button ID="btnWWWCourse" Text="產生課程XML" runat="server" OnClick="btnWWWCourse_Click" OnClientClick="return CheckWWWCourse();" />
10 [產生的www1-5.xml檔案,表示是 http://www.lesson9.com/course/100.html的方式訪問課程。]
11 </td>
12 </tr>
cs代碼:
Code
protected void btnWWWCourse_Click(object sender, EventArgs e)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
try
{
int start = Convert.ToInt32(this.txtWWWCourseStart.Text.Trim());
int end = Convert.ToInt32(this.txtWWWCourseEnd.Text.Trim());
XmlTextWriter writer1 = new XmlTextWriter(@"X:\www\www" + start.ToString() + "-" + end.ToString() + ".xml", System.Text.Encoding.UTF8);
XmlWriter writer = XmlWriter.Create(writer1, settings);
writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84");
var r = from i in db.Courses where i.Id <= end && i.Id >= start orderby i.Id ascending select i;
if (r.Count() > 0)
{
foreach (Lesson9.Entity.Course course in r.ToList())
{
writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://www.XXX.com/course/" + course.Id + ".html");
string tempMonth = DateTime.Now.Month.ToString();
if (tempMonth.Length == 1)
{
tempMonth = "0" + tempMonth;
}
string tempDay = DateTime.Now.Day.ToString();
if (tempDay.Length == 1)
{
tempDay = "0" + tempDay;
}
writer.WriteElementString("lastmod", DateTime.Now.Year + "-" + tempMonth + "-" + tempDay);
writer.WriteElementString("changefreq", "monthly");
writer.WriteElementString("priority", "0.5");
writer.WriteEndElement();
}
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
this.SetMessageInfo(spanMessage, "成功添加XML檔案");
}
catch (Exception ex)
{
this.SetMessageInfo(spanMessage, "添加出錯了:"+ ex.Message);
}
}
另1:XmlWriter writer = XmlWriter.Create(writer1, settings); 如果 writer1是直接檔案路徑如 d:\TestFolder\TestFile.xml 則settings有效果,不然無效。
哪位知其原,請告訴我。不甚感謝。
另2:google sitemap 暫不支援次層網域的提交,哪位有好方法,歡迎獻上來。