ایجاد نقشه سایت (Site Map) داینامیک
نویسنده: شقایق اشتری
تاریخ: ۱۳۹۲/۱۲/۰۲ ۰:۳۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
<?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>Url Page 1</loc> <lastmod>2014-02-20</lastmod> <changefreq>always</changefreq> <priority>1</priority> </url> <url> <loc>Url Page 2</loc> <lastmod>2014-02-20</lastmod> <changefreq>always</changefreq> <priority>1</priority> </url> </urlset>
public void UpdateSiteMap(string Addr,string NewOpr)
if (NewOpr != "add")
{
XmlElement xmlElement = xmlDoc.DocumentElement;
if (xmlElement.ChildNodes != null)
{
foreach (XmlElement myElement in xmlDoc.DocumentElement)
{
if (myElement.ChildNodes[0].InnerText == Addr)
{
if (NewOpr != "delete")
myElement.ChildNodes[1].InnerText = DateTime.Now.ToString("yyyy-MM-dd");
else
myElement.ParentNode.RemoveChild(myElement);
break;
}
}
}
} else
{
string ns="http://www.sitemaps.org/schemas/sitemap/0.9";
XmlNode url = xmlDoc.CreateNode(XmlNodeType.Element, "url",ns );
XmlNode loc = xmlDoc.CreateNode(XmlNodeType.Element, "loc", ns);
XmlNode lastmod = xmlDoc.CreateNode(XmlNodeType.Element, "lastmod", ns);
XmlNode changefreq = xmlDoc.CreateNode(XmlNodeType.Element, "changefreq", ns);
XmlNode priority = xmlDoc.CreateNode(XmlNodeType.Element, "priority", ns);
loc.InnerText = Addr;
lastmod.InnerText = DateTime.Now.ToString("yyyy-MM-dd");
changefreq.InnerText = "always";
priority.InnerText = "1";
url.AppendChild(loc);
url.AppendChild(lastmod);
url.AppendChild(changefreq);
url.AppendChild(priority);
xmlDoc.DocumentElement.AppendChild(url);
} //
Add Info In Table
//
updateSiteMap updateSiteMap = new updateSiteMap();
updateSiteMap.UpdateSiteMap("Url Page", "add"); updateSiteMap updateSiteMap = new updateSiteMap();
updateSiteMap.UpdateSiteMap("Url Page", "edit"); updateSiteMap updateSiteMap = new updateSiteMap();
updateSiteMap.UpdateSiteMap("Url Page", "delete"); void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new Route(
"sitemap.xml", new PageRouteHandler("~/sitemap.ashx")));
} public class Sitemap : IHttpHandler
{
public void ProcessRequest(HttpContext context) {
context.Response.ContentType = "text/xml";
//مابقی نکات بحث در اینجا
context.Response.End();
}
public bool IsReusable {
get { return false; }
}
} Type 'sitemap' does not inherit from 'System.Web.UI.Page'.
// نحوهی معرفی جنریک هندلر به سیستم مسیریابی
public class RouteHandler : System.Web.Routing.IRouteHandler
{
public IHttpHandler GetHttpHandler(System.Web.Routing.RequestContext requestContext)
{
return new Sitemap();
}
}
// Global.asax file
void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new Route("sitemap.xml", new RouteHandler()));
} که من در کد نویسی تگ changefreq را 1 و تگ priority را always قراار دادم.ظاهرا جابجا نوشتین