Blog Single

Merhabalar, bu yazımda ASP.net ile Sitemap.xml yapısını nasıl oluşturabileceğinizi örneklendiren bir çalışmaya değinmek istiyorum.

Öncelikle sitemap.aspx sayfası oluşturunuz ve sitemap.aspx.cs dosyasına girip aşağıdaki kodları yazınız;

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.Data.SqlClient;

public partial class sitemap : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    SiteHaritasiniDondur();
}

private void SiteHaritasiniDondur()
{
    StringBuilder strBuilder = new StringBuilder();
    strBuilder.AppendLine("<?xml version="1.0" encoding="UTF-8"?>");
    strBuilder.AppendLine("<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">");

    #region AnaSayfa
    //AnaSayfamızı manuel olarak  Ekliyoruz. 
    //veritabanından çekerek oluşturamayacağınız değişken olmayan linkleri bu şeklide ekleyin.
    strBuilder.AppendLine("<url>");

    strBuilder.AppendLine("<loc>");
    string makaleLink = String.Format("http://siteadresim.com");
    strBuilder.AppendLine(makaleLink);
    strBuilder.AppendLine("</loc>");

    strBuilder.AppendLine("<changefreq>");
    strBuilder.AppendLine("always");
    strBuilder.AppendLine("</changefreq>");

    strBuilder.AppendLine("<priority>");
    strBuilder.AppendLine("1");
    strBuilder.AppendLine("</priority>");

    strBuilder.AppendLine("</url>");
    #endregion

    //kategorilere gore sayfaları ekle
    #region Kategoriler

    SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Ornek;Integrated Security=True;");
    conn.Open();
    SqlDataAdapter da = new SqlDataAdapter("Select * from categories", conn);
    DataTable dt = new DataTable();
    da.SelectCommand.ExecuteNonQuery();
    da.Fill(dt);

    foreach (DataRow row in dt.Rows)
    {
        strBuilder.AppendLine("<url>");
        strBuilder.AppendLine("<loc>");
        string kAd = row["categoryName"].ToString();
        string kID = row["categoryNo"].ToString();
        if (kAd.Contains('('))
        {
            kAd = kAd.Substring(0, kAd.IndexOf('('));
        }

        //linki oluşturuken & yerine &amp; kullanıyoruz. aksi takdirde hata verir.
        makaleLink = String.Format("http://siteadresim.com/Default.aspx?KategoriID={0}&amp;Kategori={1}", kID, kAd);

        strBuilder.AppendLine(makaleLink);
        strBuilder.AppendLine("</loc>");

        strBuilder.AppendLine("<changefreq>");
        strBuilder.AppendLine("weekly");
        strBuilder.AppendLine("</changefreq>");

        strBuilder.AppendLine("<priority>");
        strBuilder.AppendLine("0.5");
        strBuilder.AppendLine("</priority>");

        strBuilder.AppendLine("</url>");
    } 
    #endregion
   
    strBuilder.AppendLine("</urlset>");

    Response.ContentType = "text/xml";
    Response.Write(strBuilder.ToString());
    Response.End();
}
}

Not: Kodlar bana ait değildir. Sadece, arşivimdeki bir kodu sizlerle paylaşmak istedim.

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın