PDA

View Full Version : Google Site Map و بروز کردن آن



roomezonline
سه شنبه 09 آذر 1389, 08:00 صبح
سلام دوستان
من میخوام واسه سایتم یه SiteMap.XMl به صورت داینامیک داشته باشم و برای معرفی سایتم به گوگل اون را در WEbmaster گوگل ادد کنم

من در ساخت سایت مپ مشکلی ندارم اما:

میخوام با اضافه کردن رکورد اون رکورد به sitemap اضافه بشه
من برای این کار امدم یک جدول ساختم با فیلد های
url
update
freq
prio

و وقتی یه پست ارسال میکنم اینها رو پر میکنم یعنی اطلاعات من به اسن صورت میشه


<url>
<loc> url </loc>
<lastmod>update</lastmod>
<changefreq>freq</changefreq>
<priority>prio</priority>
</url>




حالا واسم ســــــــــــــوال شده که چی جوری:


1. رکورد ارسال شده رو به سایت مپ موجود اضافه کنم؟؟؟

2. اگر امکان اضافه یا حذف رکورد به صورت تکی در سایت مپ نیست . چی جوری می تونم رکوردهای جدول رو در سایت مپ ادد کنم.؟؟؟

3. در صورت حذف یک پست چی جوری اون رو از سایت مپ حذف کنم؟

با تشکر

roomezonline
سه شنبه 09 آذر 1389, 11:29 صبح
یعنی واقعا کسی بلد نیست؟

mahmood_4246
سه شنبه 09 آذر 1389, 11:37 صبح
سلام دوستان
من میخوام واسه سایتم یه SiteMap.XMl به صورت داینامیک داشته باشم و برای معرفی سایتم به گوگل اون را در WEbmaster گوگل ادد کنم

من در ساخت سایت مپ مشکلی ندارم اما:

میخوام با اضافه کردن رکورد اون رکورد به sitemap اضافه بشه
من برای این کار امدم یک جدول ساختم با فیلد های
url
update
freq
prio

و وقتی یه پست ارسال میکنم اینها رو پر میکنم یعنی اطلاعات من به اسن صورت میشه


<url>
<loc> url </loc>
<lastmod>update</lastmod>
<changefreq>freq</changefreq>
<priority>prio</priority>
</url>




حالا واسم ســــــــــــــوال شده که چی جوری:


1. رکورد ارسال شده رو به سایت مپ موجود اضافه کنم؟؟؟

2. اگر امکان اضافه یا حذف رکورد به صورت تکی در سایت مپ نیست . چی جوری می تونم رکوردهای جدول رو در سایت مپ ادد کنم.؟؟؟

3. در صورت حذف یک پست چی جوری اون رو از سایت مپ حذف کنم؟

با تشکر
ساختار gooleMap از نوع Xml هستش..از دستورات Xml استفاده کن

roomezonline
سه شنبه 09 آذر 1389, 11:47 صبح
آقا زحمت کشیدی . من گفتم در XML میخوام اینکار رو بکنم

silverfox
سه شنبه 09 آذر 1389, 13:29 عصر
با همون xml می تونی node ها رو remove edit یا هرکاری می خوای بکنی دیگه برای مثال اینجا رو ببین (http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/04d1e069-660a-46cf-846e-45cf141c747d) یا برای remove کردن (http://forums.asp.net/p/1470170/3405563.aspx)...

maxpayn2
سه شنبه 09 آذر 1389, 13:41 عصر
سلام
نمیدونم ساختار فایلی که برای معرفی به گوگل میخوای چه جوری باید باشه ولی پروژه ضمیمه از روی دیتابیس یه فایل xml میسازه برای منو با زیر منو های نا محدود ، شاید بتونی ازش ایده بگیری

roomezonline
سه شنبه 09 آذر 1389, 19:37 عصر
اقا یه سوال : یعنی بهتره سوالم رو اینطور مطرح کنم

من یک جدول دارم که 100 رکورد داخلش هست

حالا من با چه دستوری این 100 رکورد رو توی یه فایل XML مثلا test.xml بریزم یا به قولی insert کنم

roomezonline
سه شنبه 09 آذر 1389, 20:52 عصر
دوستان من یه کد پیدا کردم که اطلاعات رو از جدول میخونه و میریزه تو XML




Dim cmd As New SqlCommand("select * from tb_sitemap as url for xml auto,elements,ROOT('urlset')", con)


con.Open()
Dim reader As System.Xml.XmlReader = cmd.ExecuteXmlReader()
Dim doc As New XmlDocument()

doc.Load(reader)
doc.Save(Server.MapPath("sitemap.xml"))
reader.Close()

و خروجی برای مثال به این صورت است:

62972



اما یه مشکل:
که این طبق استاندارد XML for Google نیست
من میخوام این دوخط که در عکس دوم نشون میدم به اول فایلم اضاف بشه:

این دو خط:

62973

باید چیکار کنم

silverfox
سه شنبه 09 آذر 1389, 20:54 عصر
اگه خودت می خوای بنویسی که نمونش هست ببین چطوری اون لینکا و سرچ و اینا اگرم می خوای می تونی با این برنامه های آماده و مجانی بزاری خودش همه صفحه هاتو اد می کنه یه سایت مپ واست درست می کنه...

Alireza_Salehi
سه شنبه 09 آذر 1389, 21:27 عصر
دوستان من یه کد پیدا کردم که اطلاعات رو از جدول میخونه و میریزه تو XML
باید چیکار کنم
این یک مثال ساده که کدی استاندارد تولید می کند و در همه موتورهای جستجو پذیرفته می شود:


DateTime date = DateTime.Now;
XmlTextWriter xmlTextWriter = new XmlTextWriter(HttpContext.Current.Server.MapPath("~/sitemap.xml"), System.Text.Encoding.UTF8);
String[,] StaticUrls = {
{"http://www.mysite.com/", "daily", "1.0"},
{"http://www.mysite.com/Membership.aspx","daily","0.9"},
{"http://www.mysite.com/Articles.aspx","daily","0.9"},
{"http://www.mysite.com/Video.aspx","weekly","0.7"},
{"http://www.mysite.com/Contact.aspx","weekly","0.9"},
{"http://www.mysite.com/About.aspx","weekly","0.8"},
{"http://www.mysite.com/SiteMap.aspx","daily","0.6"},
{"http://www.mysite.com/Cloud.aspx","daily","0.9"},
{"http://www.mysite.com/Help.aspx","monthly","0.3"},
{"http://www.mysite.com/FAQ.aspx","weekly","0.5"},
{"http://www.mysite.com/Login.aspx","monthly","0.5"}};

xmlTextWriter.WriteStartDocument();
xmlTextWriter.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

for (int i = 0; i < StaticUrls.GetLength(0); i++)
{
xmlTextWriter.WriteStartElement("url");
xmlTextWriter.WriteStartElement("loc");
xmlTextWriter.WriteValue(StaticUrls[i, 0]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("lastmod");
xmlTextWriter.WriteValue(date.ToString("yyyy-MM-dd"));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("changefreq");
xmlTextWriter.WriteValue(StaticUrls[i, 1]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("priority");
xmlTextWriter.WriteValue(StaticUrls[i, 2]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
}

NDContext db = new NDContext();
foreach (nd_Article _Article in from _A in db.nd_Articles
orderby _A.SubmitDate ascending
select _A)
{
xmlTextWriter.WriteStartElement("url");
xmlTextWriter.WriteStartElement("loc");
xmlTextWriter.WriteValue(
String.Format("http://www.mysite.com/Article.aspx?article={0}", _Article.Id));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("lastmod");
xmlTextWriter.WriteValue(_Article.SubmitDate.ToStr ing("yyyy-MM-dd"));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("changefreq");
xmlTextWriter.WriteValue("monthly");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("priority");
xmlTextWriter.WriteValue("0.4");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
}


xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndDocument();
xmlTextWriter.Flush();
xmlTextWriter.Close();

مکانیزم ساده ای دارد فقط به فرمت خروجی و ترتیب نوشتن تگ های شروع و پایان دقت کنید.
روش های دیگری هم وجود دارد.

roomezonline
سه شنبه 09 آذر 1389, 22:51 عصر
این یک مثال ساده که کدی استاندارد تولید می کند و در همه موتورهای جستجو پذیرفته می شود:


DateTime date = DateTime.Now;
XmlTextWriter xmlTextWriter = new XmlTextWriter(HttpContext.Current.Server.MapPath("~/sitemap.xml"), System.Text.Encoding.UTF8);
String[,] StaticUrls = {
{"http://www.mysite.com/", "daily", "1.0"},
{"http://www.mysite.com/Membership.aspx","daily","0.9"},
{"http://www.mysite.com/Articles.aspx","daily","0.9"},
{"http://www.mysite.com/Video.aspx","weekly","0.7"},
{"http://www.mysite.com/Contact.aspx","weekly","0.9"},
{"http://www.mysite.com/About.aspx","weekly","0.8"},
{"http://www.mysite.com/SiteMap.aspx","daily","0.6"},
{"http://www.mysite.com/Cloud.aspx","daily","0.9"},
{"http://www.mysite.com/Help.aspx","monthly","0.3"},
{"http://www.mysite.com/FAQ.aspx","weekly","0.5"},
{"http://www.mysite.com/Login.aspx","monthly","0.5"}};

xmlTextWriter.WriteStartDocument();
xmlTextWriter.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

for (int i = 0; i < StaticUrls.GetLength(0); i++)
{
xmlTextWriter.WriteStartElement("url");
xmlTextWriter.WriteStartElement("loc");
xmlTextWriter.WriteValue(StaticUrls[i, 0]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("lastmod");
xmlTextWriter.WriteValue(date.ToString("yyyy-MM-dd"));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("changefreq");
xmlTextWriter.WriteValue(StaticUrls[i, 1]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("priority");
xmlTextWriter.WriteValue(StaticUrls[i, 2]);
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
}

NDContext db = new NDContext();
foreach (nd_Article _Article in from _A in db.nd_Articles
orderby _A.SubmitDate ascending
select _A)
{
xmlTextWriter.WriteStartElement("url");
xmlTextWriter.WriteStartElement("loc");
xmlTextWriter.WriteValue(
String.Format("http://www.mysite.com/Article.aspx?article={0}", _Article.Id));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("lastmod");
xmlTextWriter.WriteValue(_Article.SubmitDate.ToStr ing("yyyy-MM-dd"));
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("changefreq");
xmlTextWriter.WriteValue("monthly");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteStartElement("priority");
xmlTextWriter.WriteValue("0.4");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndElement();
}


xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndDocument();
xmlTextWriter.Flush();
xmlTextWriter.Close();

مکانیزم ساده ای دارد فقط به فرمت خروجی و ترتیب نوشتن تگ های شروع و پایان دقت کنید.
روش های دیگری هم وجود دارد.

امکانش هست کمی در مورد کد توضیح بدید

roomezonline
سه شنبه 09 آذر 1389, 23:18 عصر
Dim db As New ExeContext()
For Each _Article As nd_Article In From _A In db.nd_ArticlesOrder By _A.SubmitDate Ascending_A

این کد رو میشه توضیح بدید با با کد select در SQL جایگزین کنید

Alireza_Salehi
چهارشنبه 10 آذر 1389, 09:03 صبح
کد کاملا واضحه از LINQ برای خواندن اطلاعات از دیتابیس استفاده شده است.

در این سایت فرمت صحیح قرار دارد: sitemap.org

در Visual Basic به این روش می توانید بنویسید:

Dim now As Date = DateTime.Now

Dim StaticUrls As List(Of String()) = New List(Of String())
With StaticUrls
.Add({"http://www.mysite.com/", "daily", "1.0"})
.Add({"http://www.mysite.com/Membership.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Articles.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Video.aspx", "weekly", "0.7"})
.Add({"http://www.mysite.com/Contact.aspx", "weekly", "0.9"})
.Add({"http://www.mysite.com/About.aspx", "weekly", "0.8"})
.Add({"http://www.mysite.com/SiteMap.aspx", "daily", "0.6"})
.Add({"http://www.mysite.com/Cloud.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Help.aspx", "monthly", "0.3"})
.Add({"http://www.mysite.com/FAQ.aspx", "weekly", "0.5"})
.Add({"http://www.mysite.com/Login.aspx", "monthly", "0.5"})
End With

Dim db As NDDataContext = New NDDataContext()

Dim sitemap As XDocument = <?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<%= From s In StaticUrls
Select <url>
<loc><%= s(0) %></loc>
<lastmod><%= now.ToString("yyyy-MM-dd") %></lastmod>
<changefreq><%= s(1) %></changefreq>
<priority><%= s(2) %></priority>
</url> %>
<%= From a In db.nd_Articles
Select <url>
<loc><%= String.Format("http://www.mysite.com/Article.aspx?article={0}", a.Id) %></loc>
<lastmod><%= String.Format("{0:yyyy-MM-dd}", a.SubmitDate) %></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url> %>
</urlset>
sitemap.Save(HttpContext.Current.Server.MapPath("~/sitemap.xml"))

roomezonline
چهارشنبه 10 آذر 1389, 19:39 عصر
کد کاملا واضحه از LINQ برای خواندن اطلاعات از دیتابیس استفاده شده است.

در این سایت فرمت صحیح قرار دارد: sitemap.org

در Visual Basic به این روش می توانید بنویسید:

Dim now As Date = DateTime.Now

Dim StaticUrls As List(Of String()) = New List(Of String())
With StaticUrls
.Add({"http://www.mysite.com/", "daily", "1.0"})
.Add({"http://www.mysite.com/Membership.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Articles.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Video.aspx", "weekly", "0.7"})
.Add({"http://www.mysite.com/Contact.aspx", "weekly", "0.9"})
.Add({"http://www.mysite.com/About.aspx", "weekly", "0.8"})
.Add({"http://www.mysite.com/SiteMap.aspx", "daily", "0.6"})
.Add({"http://www.mysite.com/Cloud.aspx", "daily", "0.9"})
.Add({"http://www.mysite.com/Help.aspx", "monthly", "0.3"})
.Add({"http://www.mysite.com/FAQ.aspx", "weekly", "0.5"})
.Add({"http://www.mysite.com/Login.aspx", "monthly", "0.5"})
End With

Dim db As NDDataContext = New NDDataContext()

Dim sitemap As XDocument = <?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<%= From s In StaticUrls
Select <url>
<loc><%= s(0) %></loc>
<lastmod><%= now.ToString("yyyy-MM-dd") %></lastmod>
<changefreq><%= s(1) %></changefreq>
<priority><%= s(2) %></priority>
</url> %>
<%= From a In db.nd_Articles
Select <url>
<loc><%= String.Format("http://www.mysite.com/Article.aspx?article={0}", a.Id) %></loc>
<lastmod><%= String.Format("{0:yyyy-MM-dd}", a.SubmitDate) %></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url> %>
</urlset>
sitemap.Save(HttpContext.Current.Server.MapPath("~/sitemap.xml"))


اولا تشکر بابت توجه شما به مشکل من

من تا حالا با linq کار نکردم و پروژم با linq نیست

اگر امکانش هست سوروس را از نظر ارتباط با فرمان SQL بدید



select * from .....

roomezonline
چهارشنبه 10 آذر 1389, 22:18 عصر
دوستان عزیز من واقعا به راهاندازی این قسمت نیاز دارم . لطفا راهنمایی کنید

Alireza_Salehi
پنج شنبه 11 آذر 1389, 12:03 عصر
تا به حال چطوری از دیتابیس اطلاعات رو می خوندید؟
شما کافیه اون حلقه froeach رو با روش خودتون جایگزین کنید اگر با خواندن اطلاعات از دیتابیس مشکل دارید در فروم جستجو کنید به تعداد موهای سرتون توضیح داده شده.
datareader
tableadapter
و....

roomezonline
جمعه 12 آذر 1389, 19:27 عصر
اقا تنها شما بودید که به سوالم توجه کردید و جواب دادید هم اینجا از شما تشکر میکنم هم با کلید تشکر . مشکلم حل شد