Osman KURT

Kendime Not

ASP.Net de RSS Okuma

Evet arkadaşlar günümüz web dünyasının vazgeçilmezlerinden biri olan xml lerimize değincem bugün ve asp.net de nasıl xml okuduğumuzu göstercem. İşe ilk olarak default.aspx sayfamızdan başlıyoruz ve alt kısımda verdiğim kodların aynısını kendi default sayfamızda da yapıyoruz.

Default.aspx

<asp:TextBox ID="TxtRss" runat="server" Width="649px"></asp:TextBox>
        <asp:Button ID="BtnRss" runat="server" Text="RSS Load" Width="90px"
            onclick="BtnRss_Click" />
        <br />

        <asp:Panel ID="PanelContent" runat="server"
            Width="100%">

            <asp:DataList ID="DataListRSS" runat="server" BackColor="#CCCCCC"
            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4"
            CellSpacing="2" ForeColor="Black" GridLines="Both" Width="100%">
                <FooterStyle BackColor="#CCCCCC" />
                <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                <ItemStyle BackColor="White" />
                <ItemTemplate>
                    <%# Eval("title") %>
                    <br />
                    <%# Eval("description")%>
                    <br />
                    <%# Eval("link")%>
                    <br />                   
                    <%# Eval("pubDate")%>
                    <br />
                </ItemTemplate>
                <SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            </asp:DataList>

        </asp:Panel>

Default.aspx dosyamızı oluşturduktan sonra şimdi Btnrss butonumuzun altına verecğim kodumuzu yazıyoruz.

protected void BtnRss_Click(object sender, EventArgs e)
    {
        XmlTextReader xreader;
       
        // Textbox'ın validasyon işlemini kod tarafında kontrol ediyoruz.
        if (!string.IsNullOrEmpty(TxtRss.Text))
        {
            // textbox'a girilen URL nesneye aktarılıyor
            xreader = new XmlTextReader(TxtRss.Text);
            DataSet dset = new DataSet();
            dset.ReadXml(xreader);

            // XML dosyası okunduktan sonra dataliste kaynak olarak belirtiliyor ve bağlanıyor.
            DataListRSS.DataSource = dset.Tables["item"];
            DataListRSS.DataBind();
        }

    }

Bu kodlarımızı da sorunsuz şekilde yazdıktan sonra sıra son işlemimiz olan xml sayfamıza geldi. İlk olarak RSS.xml adında bir xml sayfası oluşturuyoruz ve içine alt kısım da ki kodlarımızı yazıyoruz.

<?xml version="1.0" encoding="UTF-8"?>

<channel>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
 
<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>

<item>
  <title>xdfgdf</title>
  <description>fghfgh</description>
  <author>fgj</author>
  <link>hjk</link>
  <pubDate>saer</pubDate>
</item>
 
</channel>
   

Sayfamızı çalıştırdığımızda artık istediğimiz adresten RSS okuyabiliriz.

Görüşmek Üzere;

Osman KURT

Yorumlar (5) -

  • ismail

    23.10.2011 09:06:53 | Yanıtla

    rss dosyasını yerelden değilde varolan bir URL'den okutmak isteseydik nasıl olacak idi?

  • osmankurt

    23.10.2011 13:54:48 | Yanıtla

    Merhaba İsmail;

    Zaten yazıda fark ettiysen textbox var ve rss kaynağını orada belirttim. Yani dışardan kaynak belirtiyorsun. İstersen sen localde çalıştır benim sayfamın rss kaynağını belirt textbox da okuduğunu göreceksin. Herhangi bir problem çıkarsa ben buradayım.

  • ismail

    23.10.2011 15:22:28 | Yanıtla

    tamamdır, teşekkür.
    şöyle yapınca çalıştı:
    xreader = new XmlTextReader("http://abc.com/rss/GuNCEL.aspx";);

    lakin bişey daha sormak istiyorum,
    bu örnek C#,
    ben bu rss okuduğum kısmı, yani sayfamı  başka bir vb olan bir sayfamın içine çağırmak istiyorum.
    ya bunu vb'ye göre yeniden yazmam lazım ya da bu rss sayfamı var olan bir vb sayfamın içine include etmem lazım anladığım kadarıyla.
    her iki durumdada hiç bir tecrübem yok, nasıl yapmalıyım?

  • ismail

    23.10.2011 15:42:21 | Yanıtla

    tamamdır, teşekkürler, şöyle yapınca çalıştı:
    xreader = new XmlTextReader("http://abc.net/rss/GuNCEL.aspx";);

    fakat benim birşeyi daha becermem lazım buna göre.
    bu rss okuyan safyam C# dosyası.
    ben bunu asıl bir sayfamın içinde bir yere koymak istiyorum ama o sayfanın kod sayfası vb.
    şimdi bunu oraya nasıl include ederim?
    veya bu rss sayfamı yeniden vb'ye göre nasıl yazarım?

    • osmankurt

      27.10.2011 15:43:43 | Yanıtla

      Vb.net projenin içine usercontrol yazarak include edebilirsin çalışırmı yalnız emin değilim.
      Başka bir yöntem de iframe mantığı var onu da deneyebilirsin.
      Ama vb.net projenin içinde en mantıklısı ve sağlıklısı vb şeklinde yazman gibi görünüyor. Hem bu sayede öğrenmiş olursun.

Loading