YUKARI

ASP.Net ile Site haritası (SiteMap) oluşturma.

 

 

 

 

 

 

 

 

Bu makalede asp.net ile site haritası başka bir deyişle sitemap oluşturmayı göstereceğim. Ben genellikle kendi sitelerimde bu kodu kullanıyorum. Yapamayan arkadaşlar olursa burdan yardımcı olmaya çalışırım.












Öncelikle;
using System.Text;
using System.Net;
using System.IO;
using System.Data.OleDb;
ekliyoruz.
Şimdi kodlarımızı yazmaya başlayalım.
        //Sayfanın içeriğini komple temizliyoruz...
        Response.Clear();
        //Sayfanın formatını XML olduğunu belirliyoruz...
        Response.ContentType = "text/xml";
        //XML oluşturmak için XmlTextWriter tanımlıyoruz ve
        //Encoding UTF8 olarak belirliyoruz...
        XmlTextWriter objX = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
        //Bu bölümde sırasıyla elementlerimizi oluşturuyoruz.
        objX.WriteStartDocument();
        objX.WriteStartElement("urlset");
        //Site Map standartlarını belirliyoruz...
        objX.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
        objX.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
        objX.WriteAttributeString("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd");
        //Sitenin sabit sayfalarını static olarak ekliyoruz...
        objX.WriteStartElement("url");
        objX.WriteElementString("loc", http://www.siteadi.com/);
        objX.WriteElementString("lastmod", DateTime.Now.ToString("yyyy-MM- dd"));
        objX.WriteElementString("changefreq", "daily");
        objX.WriteElementString("priority", "1");
        objX.WriteEndElement();
        OleDbConnection objConnection = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data\\dbninismi.mdb"));
        objConnection.Open();
        //Ben blogla ilgili örnek yapıyorum
        string sql = "SELECT id,tarih, baslik FROM altkategori ORDER BY id DESC";
        OleDbCommand objCommand = new OleDbCommand(sql, objConnection);
        OleDbDataReader objReader = objCommand.ExecuteReader();
        while (objReader.Read())
        {
            objX.WriteStartElement("url");
            objX.WriteElementString("loc", http://www.siteadi.com/ + ReWritePath(objReader["id"].ToString(), objReader ["baslik"].ToString()) );
            objX.WriteElementString("lastmod", objReader.GetDateTime(1).ToString("yyyy-MM-dd"));
            if (objReader.GetDateTime(1).ToShortDateString() == DateTime.Now.ToShortDateString())
            {
                objX.WriteElementString ("priority", "1");
                objX.WriteElementString ("changefreq", "daily");
            }
            else
            {
                int fark = TarihFark (objReader.GetDateTime(1), DateTime.Now);
                if ((fark > 1) && (fark <= 7))
                {
                    objX.WriteElementString("priority", "0.5");
                    objX.WriteElementString("changefreq", "weekly");
                }
                else if (fark > 7)
                {
                    objX.WriteElementString("priority", "0.1");
                    objX.WriteElementString("changefreq", "monthly");
                }
            }
            objX.WriteEndElement();
        }
        objReader.Close();
        objConnection.Close();
        objX.WriteEndElement();
        objX.WriteEndDocument();
        objX.Flush();
        objX.Close();
        Response.End();
    }
    public int TarihFark(DateTime tr1, DateTime tr2)
    {
        TimeSpan Sonuc;
        Sonuc = (tr2 - tr1);
        return (Sonuc.Days);
    }
Kolay Gelsin...
24. February 2010 01:24 by Administrator | Comments (3) | Permalink
1

Etiket Bulutu

Yazar Hakkında

Bu site görüşlerin paylaşıldığı kişisel bir blogdur. Site içeriğinden meydana gelebilecek sorunlardan site sahibi sorumlu değildir.Sitede yazılan her yazı tarafımca yazılmış olup, izinsiz veya link verilmeden alıntı yapılamaz. Yorumlar site sahibi tarafından onaylandıktan sonra yayınlanacaktır.

©KodArsivi.Net