Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » .NET makaleleri » net » RSS (Reader)
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

FlexGrid lerde Maksimum Değeri Bulmak

Yazar: ahmetdemirci

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 6560
Yayın Tar:17.03.2006
Yazar : Gladio
Hit :1655

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Formumuzun design bölümüne sadece textbox, button, listview ve browser kullanıyoruz. Toolbox üzerine sağ tıklayıp add/remove items sekmesini tıklayıp, com components tab sekmesinden Microsoft web tarayıcısını formumuza ekliyebiliriz. Ayrıca projemize add web reference diyerekaşağıda yazan adresi ekliyoruz;(http://www.zaman.com.tr/xml/zaman_sondakika.xml)

Öncelikle projemize 3 adet class ekliyoruz. Bunların isimlerini RssChannel, RssItemCollection ve RssItem olarak veriyoruz. Kodları aşağıdaki gibi yazıyoruz. Öncelikle RssChannel isimli classımızı oaşağıdaki gibi oluşturuyoruz;

Imports System.Xml
Imports System.Xml.XPath

Public Class RssChannel

Private mTitle As String
Private mDescription As String
Private mLink As String
Private mItems As New RssItemCollection


Public Property Items() As RssItemCollection
Get
Return mItems
End Get
Set(ByVal Value As RssItemCollection)
mItems = Value
End Set
End Property
Public Property Title() As String
Get
Return mTitle
End Get
Set(ByVal Value As String)
mTitle = Value
End Set
End Property
Public Property Description() As String
Get
Return mDescription
End Get
Set(ByVal Value As String)
mDescription = Value
End Set
End Property
Public Property Link() As String
Get
Return mLink
End Get
Set(ByVal Value As String)
mLink = Value
End Set
End Property


Public Shared Function GetRssChannel(ByVal Url As String) As RssChannel
Dim Rc As New RssChannel
Dim Xd As XPathDocument

Try
Xd = New XPathDocument(Url) 'adresteki xml belgesini okuyor, ve bir belge gıbı goruyor
Catch ex As Exception
MsgBox(ex.Message) 'okuma sırasında bir hata verırse
End Try

Dim Xp As XPathNavigator = Xd.CreateNavigator 'ayırac oluşturuyor
Dim Ni As XPathNodeIterator 'bir ayaırac oluşturuyor verılen sorguya gore belge uzerınde ayırma ıslemını gerçeklesştiriyor
'title
Ni = Xp.Select("/rss/channel/title")
Ni.MoveNext()
Rc.Title = Ni.Current.Value

Ni = Xp.Select("/rss/channel/description")
Ni.MoveNext()
Rc.Description = Ni.Current.Value

Ni = Xp.Select("/rss/channel/link")
Ni.MoveNext()
Rc.Link = Ni.Current.Value

Ni = Xp.Select("/rss/channel/item")
While Ni.MoveNext
Dim Ri As New RssItem 'yeni bir haber oluşturuyor
Dim Ni2 As XPathNodeIterator
Ni2 = Ni.Current.Select("link") 'item>Link
Ni2.MoveNext()
Ri.Link = Ni2.Current.Value

Ni2 = Ni.Current.Select("description") 'item>description
Ni2.MoveNext()
Ri.Description = Ni2.Current.Value

Ni2 = Ni.Current.Select("title") 'item>title
Ni2.MoveNext()
Ri.Title = Ni2.Current.Value

Rc.Items.Add(Ri) ' haberi ekliyor Channel'a
End While

Return Rc

End Function

End Class

Şimdi ise RssItem isimli classımızı aşağıdaki gibi oluşturuyoruz;

Public Class RssItem
Private mTitle As String
Private mLink As String
Private mDescription As String

Public Property Title() As String
Get
Return mTitle
End Get
Set(ByVal Value As String)
mTitle = Value
End Set
End Property
Public Property Link() As String
Get
Return mLink
End Get
Set(ByVal Value As String)
mLink = Value
End Set
End Property
Public Property Description() As String
Get
Return mDescription
End Get
Set(ByVal Value As String)
mDescription = Value
End Set
End Property

End Class

Class oluşturmak işlemimizi RssItemCollection isimli classımızı da aşağıdaki gibi oluşturarak tamamlıyoruz;

Public Class RssItemCollection
Inherits CollectionBase

Public Function Add(ByVal Rssitem As RssItem) As Integer
Return list.Add(Rssitem)
End Function

Default Public Property Items(ByVal index As Integer) As RssItem
Get
Return List(index)
End Get
Set(ByVal Value As RssItem)
list(index) = Value
End Set
End Property

End Class1

En son olarak Formumuzun code behind kısmına aşağıdaki kodlarımızı yazıyoruz. Böylelikle adres getir buttonu tıklama işlemini, listview üzerindeki tek ve çift tıklama işlemlerini programlıyoruz;

Public Class Form1
Inherits System.Windows.Forms.Form

Dim RC As RssChannel

Private Sub BtnAdresGetir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdresGetir.Click

RC = RssChannel.GetRssChannel(txtAdres.Text)
Me.Text = RC.Title
Me.ListView1.Items.Clear()
For Each ri As RssItem In RC.Items
Dim Li As New ListViewItem(ri.Title)
Li.Tag = ri
ListView1.Items.Add(Li)
Next

End Sub

Private Sub ShowDescription(ByVal Desc As String)
Dim Fs As New IO.FileStream("Temp.htm", IO.FileMode.Create)
Dim Sw As New IO.StreamWriter(Fs, System.Text.Encoding.GetEncoding(1254))
Sw.Write("<HTML><BODY>")
Sw.Write(Desc)
Sw.Write("</BODY></HTML>")
Sw.Close() : Fs.Close()
Me.Browser.Navigate2(IO.Path.Combine(Application.StartupPath, "Temp.htm"))
End Sub

Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click
Dim Ri As RssItem = ListView1.SelectedItems(0).Tag
Me.Text = Ri.Title & " - " & RC.Title
ShowDescription(Ri.Description)
End Sub

Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
Dim Ri As RssItem = ListView1.SelectedItems(0).Tag
Me.Text = Ri.Link & " - " & RC.Title
Me.Browser.Navigate(Ri.Link)
End Sub
End Class

Böylelikle bir RssReader programlayarak hem xml bilgimizi pekiştirdik hem de rss teknolojisini yakından tanımış olduk. Farklı makalelerde tekrar görüşmek üzere.




Yorumlar, eklemeler ve düşünceler
        bu kod yapısı aslında vbasic 2005 express edition ı görsel olarak anlatan bir adam tarafından verilmişti yada ben karıştırıyorum sanırım

neyse kodlar çalışıyor eline sağlık

Kolay gelsin




   LENIN, 19.04.2006 20:57
   Bu makale yazgelistir.com'sa Yağız GÜLER'e aittir.Başkalarının makalelerini kendi makaleleriniz gibi gösterip burada kredi adına yayınlamak hırsızlıktır.
Makale örneği :http://www.yazgelistir.com/Makaleler/1000000915.ygpx

   ssaglamer, 11.06.2007 05:17
© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin