![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RSS'leri okumak ve yeni RSS'ler yazmak | 11.07.2005 14:56:00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Kategori : C# & VB.Net Özet : Nedir RSS (Really Simple Syndication) diye soracak olursanız, çok açık olarak "web sitelerini ziyaret etmeden site içindeki yeni içerigi almanin bir yolu"dur derim. Sanırm bunun için en iyi örnek haber siteleri olacaktır. Yeni haber yayınlandıgında siz bu haberi okumak için o siteyi ziyaret etmeniz lazim, ama bir RSS okuyucunuz varsa bu işi sizin adınıza yapacaktır. Yazgelistir.com'da RSS hizmetini kullanıcılarına vermektedir. Makalemizin konusuda gelişmiş bir RSS okuyucu yapmaktansa, RSSleri nasıl okuruz ve basitce nasıl oluştururuz onu incelemek. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
başlık: RSS'leri okumak ve yeni RSS'ler yazmak Özet: Nedir RSS (Really Simple Syndication) diye soracak olursanız cevap çok açık olacak "web sitelerini ziyaret etmeden site içindeki yeni içerigi almanin bir yolu"dur derim. Sanırm bunun için en iyi örnek haber siteleri olacaktır. Yeni haber yayınlandıgında siz bu haberi okumak için o siteyi ziyaret etmeniz lazim, ama bir RSS okuyucunuz varsa bu işi sizin adınıza yapacaktır. Makalemizin konusuda gelişmiş bir RSS okuyucu yapmaktansa, RSSleri nasıl okuruz ve basitce nasıl oluştururuz onu incelemek.
RSSlerin zengin içerikli bir sitenin en yeni icerigini
ve özetini almak oldugunu ögrendik. Peki nedir bu RSSlerin yapısı
derseniz, genellikle cool sitelerin içinde görürsünüz "turuncu RSS" butonu
RSS okuyucu programlara RSS in adresi verirsiniz yani URI sini o XML dosyasını çeker parse'ledikten sonra gerekli alanları bize gosterir. O hizmeti veren sitedeki yapı ise dinamik olarak RSS dokumanlarini sitenin yeni eklenen içerigine göre yaratıp veritabanına saklamaktır. Çok çeşitli RSS okuyucuları var, outlook veya browseriniz ile organize çalışan yada kendi başına çalışan. Daha öncede söyledigimiz gibi RSS in kalbi XML standartları. Ya bu XML dosyalarını kendiniz yapacaksınız, yada dinamik olmasını istiyorsanız yaptiginiz bir araç sürekli veritabanını kontrol ederek yenileri otomatik oluşturmalıdır. Klasik olarak hep verilen haber sitelerini bende örnek vericem bunlardan ülkemizde en yenisi NTVMSNBC'nin yeni vermeye başladıgı RSS hizmetidir. Adresi http://tools.ntvmsnbc.com/rss/news.xml . Sanırm bunu bir arkadaşımız ipucu kısmınada yazmıştı. Tabii bu haberler için, spor ve ekonomi için ayrı dosyalar yaratılmıştır. İsterseniz ilk, RSSi oluşturan XMLin yapısına bi bakalım:
<?xml
version="1.0" encoding="ISO-8859-9" ?>
<title>NTVMSNBC
- Güncel</title>
<copyright>Copyright
(c) 200 NTVMSNBC</copyright>
<link>http://www.ntvmsnbc.com</link>
<description>Türkiye'nin
haber portalı NTVMSNBC'den Güncel haberleri</description>
<language>tr-TR</language>
<lastBuildDate>09
Temmuz 2005 11:43:32</lastBuildDate>
<ttl>5</ttl>
<title>NTVMSNBC
- Güncel</title>
<url>http://www.ntvmsnbc.com/global/ntvmsnbclogo.gif</url>
<link>http://www.ntvmsnbc.com</link>
<width>79</width>
<height>81</height>
<description>NTVMSNBC</description>
</image>
<title>Van'da
feribot kazası: 26 yaralı</title>
<link>http://www.ntvmsnbc.com/news/332439.asp</link>
<description
/>
<author>webmaster@ntvmsnbc.com</author>
<guid>NEWS:332439</guid>
<pubDate>09.07.2005
08:58:00</pubDate>
</item>
<title>Haluk
Koç, Erdoğan'a yüklendi</title>
<link>http://www.ntvmsnbc.com/news/332423.asp</link>
<description
/>
<author>webmaster@ntvmsnbc.com</author>
<guid>NEWS:332423</guid>
<pubDate>08.07.2005
17:52:00</pubDate>
</item>
<title>Demiryollarında
güvenlik artırıldı</title>
<link>http://www.ntvmsnbc.com/news/332436.asp</link>
<description
/>
<author>webmaster@ntvmsnbc.com</author>
<guid>NEWS:332436</guid>
<pubDate>08.07.2005
21:32:00</pubDate>
</item>
</channel>
</rss>
Her versiyonda çesitli degişilikler olmustur, Bunları detayları aşagıdaki gibidir (bu liste http://rss-net.sourceforge.net/documents/version_comparison.html alınmıştır )
Dosya Başlıgı
Channel ElementleriChannel in içinde olması gerekenler
Channelin içi
Item nesneleri
Itemlar
Şimdi RSS hakkında yeteri kadar bilgiye sahip olduktan sonra, bunları nasil C# projelerimizde kullanacagımıza bir bakalım. Elbette ki ilk aklınızdan gecen XML dosyasını indirip, parse'lemek ve için gerekli bilgileri almak geçiyordur. Çok dogru ama ben size daha kolay bir öneride bulunacagim, kaynak kodu açık bir .Net library'isi var, ismi RSS.NET. Web adresi : http://rss-net.sourceforge.net/ Ben bu kaynak kodu açık projeyi kullanıcam makalemde. Elbette ki kendimizde parse'leye biliriz ama bu tür toolları kullanmak eger özel bir durum gerektirmiyorsa kesinlikle tercih nedeni olmalıdır. Gerekli, yani projemize ekleyecegimiz DLL in kaynak kodlarını
http://rss-net.sourceforge.net/
adresinden indiriyoruz ve derliyoruz, sitede nedense tar.gz sıkıştırma
formatında, ama WinRar sorunsuz acıyor merak etmeyin. Zaten makalenin donwload
kısmınıda DLL i ben koyacagım, sizin özel bir degişiklik yapmayacaksanız bu DLL
i saf bi şekilde kullana bilirsiniz. İlk olarak bir hedefdeki RSS nasıl okunur ona bir bakalım isterseniz;
Gördügünüz gibi adres çubugumuz, getir botunumuz, listbox'umuz, labelimiz ve bir pictureboxumuz var. Listboxda channeldaki itemleri listeyecegiz, labelde description ve link'i, picture boxda ise RSS hizmetini veren yerin resmini goruntulecegiz.
private void button1_Click(object sender,
System.EventArgs e) { Diger kısım ise
haberlerin üstüne tıklanıldıgında linkin ve açıklamasının görüntülenmesi, bunun
icin listbox un SelectedIndexChanged eventini kulanıcaz; private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
label2.Text = item.Description + item.Link;
Ve işte son hali çalışır hali;
Sanırm okuma olayı bu kadar yeterli, sıra da kendi RSS imi nasıl oluşturabilir o var;
private
void button1_Click(object
sender, System.EventArgs e) İşte oluşan XML dosyası:
<?xml
version="1.0" encoding="iso-8859-1" ?>
<title>1</title>
<description>2</description>
<link>http://www.celiker.com/</link>
<lastBuildDate>Sat,
01 Jan 2005 00:00:00 GMT</lastBuildDate>
<docs>http://backend.userland.com/rss</docs>
<generator>RSS.NET:
http://www.rssdotnet.com/</generator>
<title>YazGeliştir</title>
<description>Harika
makaleler</description>
<link>http://www.yazgelistir.com/</link>
</item>
</channel>
</rss>
Herkese çalışmalarında kolaylıklar, ve bol başarı diliyorum... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yazgelistir.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||