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

Comments

Indira Ferm Indira Ferm United States
Merhaba kodlarda bir sorunmu var acaba ?
5/5/2010 5:53:45 PM #
Bu şekilde güzel web siteleri oluşturmanız harika gerçekden bu konuyu çok iyi biliyorsunuz başarılarınızın devamını dileriz.
6/20/2010 7:38:50 PM #
Teşekkürler.
7/1/2010 12:20:48 AM #

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



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