Dinamik RSS Oluşturma

İlk olarak sitemize uygun bir alanda aşağıdaki gibi bir rss.xml oluşturuyoruz.

<!–xml dosyamızın için rss taglarını acıyoruz ben burda rss versiyon 2.0 kullanıyorum.

Burdan sonraki tüm işlemleri ise yazdığım class ile halledicem.

Sizde yazdığım classı kullanarak rss dosyanız dinamik olarak güncel tutabilirsiniz.–>

<?xml version=”1.0” encoding=”utf-8“?>

<rss version=”2.0“>

</rss>

Şimdi Clasımıza geçelim…

public static void XmlOlusturma()

{

//Rss.xml imiz okuyoruz…

XDocument xDoc = XDocument.Load(@”C:\Users\fatih\Documents\Visual Studio2010\WebSites\alkanfatihyeni1\rss.xml”);

//Bu kısımdansonra sırasıla rss için gerekli xml elementlerimizi oluşturcaz.

        //Rss standartlarımızı oluşturuyoruzchannel,title,link,description,category gibi rss 2.0 standartları

        //Root elementimizi okuyoruz <rssversion=”2.0″> taglarını…

XElement rootElement = xDoc.Root;

//Root taglarımızın içine chanel elementimiz oluşturuyoruz.

XElement chanel = new XElement(“chanel”);

//title -> Başlığımız

XElement title = new XElement(“title”,”alkan fatih | software developer”);

//description -> Açıklamamız

XElement description = new XElement(“description”,”Fatih Alkan | Bir Yazılımcının SeyirDefterinden Notlar”);

//category -> Kategorimiz

XElement category = new XElement(“category”,”Bilişim”);

//language -> Dil bilgimiz

XElement language = new XElement(“language”,”tr-TR”);

//pubDate -> Oluşturma Tarihi

XElement pubDate = new XElement(“pubDate”,”31 Mart 2011 15:53:00″);

//lastBuildDate -> Güncelleme Tarihi

XElement lastBuildDate = new XElement(“lastBuildDate”,DateTime.Now.ToLongDateString());

//Ve diğer klasik elementlerimiz

XElement generator = new XElement(“generator”,”alkanfatih editor 2.0″);

XElement managingEditor = new XElement(“managingEditor”,”alkanfatih@hotmail.com.tr”);

XElement webMaster = new XElement(“webMaster”,”alkanfatih@hotmail.com.tr”);

//image elementimiz…

XElement imgelement = new XElement(“image”);

//image tagımızın elementleri…

XElement img_title = new XElement(“title”,”alkanfatih.com | software developer”);

XElement img_url = new XElement(“url”,”http://www.alkanfatih.com/Images/faith1copy.jpg”);

XElement img_link = new XElement(“link”,”http://www.alkanfatih.com/”);

XElement img_width = new XElement(“width”,”49″);

XElement img_height = new XElement(“height”,”39″);

XElement img_description = new XElement(“description”, “FatihAlkan | Bir Yazılımcının Seyir Defterinden Notlar”);

//Oluşturuduğumuz img elementelerimizi imgelemente tagımızıniçine kayıt ediyoruz.

imgelement.Add(img_title, img_url, img_link, img_width, img_height,img_description);

//Oluşturduğum rss elementlerimiz chanel elementimizin içineekliyoru.

chanel.Add(title, description, category, language, pubDate,lastBuildDate, generator, managingEditor, webMaster, imgelement);

//Klasik rss elementlerimiz oluşturdu şimdi sıra geldi rssverilerimiz oluşturmaya ben burda access veri tabanım kullanarak verilericekicem ve rss haber verilerini oluşturcam sizde kendinize hangi veri tabanınıkullanıyorsanız bu kısmı ona uygun olarak değiştiğirsiniz.

OleDbCommand cmd = new OleDbCommand(“SELECTTOP 6 fldMakale_Etiket, fldMakale_KatID, fldMakale_ID, fldMakale_Baslik,fldMakale_Konu,fldMakale_Yazar, fldMakale_TarihFROM tbl_Makale ORDER BY fldMakale_ID DESC “, MyPower.MySqlConnection);

OleDbDataAdapter da = new OleDbDataAdapter();

da.SelectCommand = cmd;

MyPower.__connOpen();

DataTable dt = newDataTable();

da.Fill(dt);

MyPower.MySqlConnection.Close();

//Sorgu işlemi ile çağırdığımız verileri döngü yardımılaelementlere yazıcaz

for (int i = 0; i< dt.Rows.Count; i++)

{

//önce item elementimizi oluşturuyoruz. Ve daha sonra ıtemselementlerimizin alt elementleriniz oluşturuyoruz.

XElement item = new XElement(“item”);

//Başlığımız

XElement item_title = new XElement(“title”,dt.Rows[i][“fldMakale_Baslik”].ToString());

//linkimiz

XElement item_link = new XElement(“link”,”http://www.alkanfatih.com/Makale/Default.aspx?fatihalkan=”+ dt.Rows[i][“fldMakale_ID”].ToString()+ “”);

//Açıklamamız

XElement item_description = new XElement(“description”, dt.Rows[i][“fldMakale_Konu”].ToString());

//Tarih

XElement item_pubDate = new XElement(“pubDate”,dt.Rows[i][“fldMakale_Tarih”].ToString());

//Id

XElement item_guid = new XElement(“guid”,”#Item:”+dt.Rows[i][“fldMakale_ID”].ToString()+””);

//Oluşturduğumu Items alt elementlerini ıtems elementlerineyazıyoruz.

item.Add(item_title, item_link, item_description, item_guid);

//Item elementimiz chanel elementimize yazıyoruz.

chanel.Add(item);

}

//Son olara oluşturuduğumuz chanal yani rss ve haberelementlerimizin bulunuğu elementimizi root elemen yazıyoruz ve save ediyoruz.

rootElement.Add(chanel);

xDoc.Save(@”C:\Users\fatih\Documents\VisualStudio 2010\WebSites\alkanfatihyeni1\rss.xml”);

}