İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# İnternetten Döviz Kurlarını Çekmek – XML

C# İnternetten Döviz Kurlarını Çekmek – XML
+ - 2

Merhaba, C# İnternetten Döviz Kurlarını Çekmek – XML dersi ile C# eğitim setime devam ediyorum. Bu dersimizde TCMB’nin sitesinden yayınlanan döviz kurlarını nasıl çekeceğimize bakacağız. Basit ve kısa bir konu olduğundan kısa bir yazı olacak.

C# İnternetten Döviz Kurlarını Çekmek – XML

Türkiye’de döviz kurlarının en doğru şekilde çekilmesi için TCMB yani Türkiye Cumhuriyeti Merkez Bankası‘nın hizmetini kullanacağız. TCMB, geliştirilen projeler tarafından okunabilmesi için XML olarak yayınlıyor. Bizde bu XML verilerini kullanarak döviz kurlarını okuyabiliyoruz.

Döviz kurlarını okuyacağımız bağlantı https://www.tcmb.gov.tr/kurlar/today.xml urlsidir.  Buraya girdiğinizde karşınıza bir tablo çıkar. Bu sayfa üzerinde sağ tıklayıp kaynağı göster dediğinizde tablonun XML formatına ulaşıyorsunuz.

Bize de bu kaynaktaki kodlar gerekiyor.

 

C# İnternetten Döviz Kurlarını Çekmek – XML

Projemize başlamadan önce gerekli namespaceleri ekleyelim.

using System.Xml;

Şimdi formumuza 10 tane label ve bir button ekleyelim.

C# İnternetten Döviz Kurlarını Çekmek

Button nesnemizi click eventine gelelim kodlarımızı yazalım.

        const string bugun = "https://www.tcmb.gov.tr/kurlar/today.xml";
        private void btn_yenile_Click(object sender, EventArgs e)
        {
            var cxml = new XmlDocument();
            cxml.Load(bugun);

            DateTime dt = Convert.ToDateTime(cxml.SelectSingleNode("//Tarih_Date").Attributes["Tarih"].Value);
            lbl_tarih.Text = dt.ToString();

            string usd_satis = cxml.SelectSingleNode("Tarih_Date/Currency [@Kod = 'USD']/BanknoteSelling").InnerXml;
            string usd_alis = cxml.SelectSingleNode("Tarih_Date/Currency [@Kod = 'USD']/BanknoteBuying").InnerXml;

            lbl_usd_sa.Text = usd_satis;
            lbl_usd_al.Text = usd_alis;


            string eur_satis = cxml.SelectSingleNode("Tarih_Date/Currency [@Kod = 'EUR']/BanknoteSelling").InnerXml;
            string eur_alis = cxml.SelectSingleNode("Tarih_Date/Currency [@Kod = 'EUR']/BanknoteBuying").InnerXml;

            lbl_eur_sa.Text = eur_satis;
            lbl_eur_al.Text = eur_alis;
        }

Kodları açıklamak gerekirse;

  • URL sabit olacağından bugun değişkenini Const olarak tanımladık. Const olarak tanımlanan değişkenler program içerisinde değiştirilemezler. Bkz. Const Kavramı
  • Bir XMLDocument tanımladık ve url’deki XML ‘i yükledik.
  • XMLDoc sınıfının SelectSingleNode sınıfını kullanarak yüklediğimiz XML Document içindeki tarih bilgisini alıyoruz.
  • Diğer tüm Node’ler de Tarih_Date node’u içinde olduğundan dolayı Currency Node’sine de TarihDate üzerinden ulaşabiliyoruz.
  • Burada bir çok Currency olduğu ve bize özellikle bir kaç tanesi gerekli olduğundan dolayı Currency’nin Kod özelliğine bakarak verileri çekiyoruz.
  • Kodu USD olan Curreny bloğununda içindeki BanknoteSelling ve BanknoteBuying yani satış ve alış değerlerini okuyoruz.

Aşağıdaki görselde işaretlenmiş alanlardaki bilgileri kullanıyoruz.

C# İnternetten Döviz Kurlarını Çekmek. 2

Yukarıdaki kodlar ile bağlantıdaki tüm dövizlerin kurlarını çekebilir ve işlemler yapabilirsiniz. Bu işlemleri elbette web projelerinizde de yapabilirsiniz. Sonuçta bu XML okuma işlemleri sadece C# ‘a özel bir konu değildir. Diğer programlama dillerinde de bu işlemleri yapabilirsiniz.


C# İnternetten Döviz Kurlarını Çekmek – XML  yazımda bu kadar arkadaşlar.

Bana destek olmak isterseniz, iletişim sayfamda verdiğim sosyal medya hesaplarımı takip edebilirsiniz.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme bu bağlantıdan ulaşabilirsiniz… Bu ders için hazırlanan projeyi Drive üzerine yükledim. Projeye buraya tıklayarak ulaşabilirsiniz. Github’a yüklemek isterdim ama böyle ufak tefek şeyleri yükleyerek orayı çöplük yapmak istemiyorum. :D

Bu yazı, sitemdeki 432. yazıdır…

Sağlıcakla ve takipte kalın. ;)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. System.Xml.XmlNode.SelectSingleNode(…), null döndürdü.
    hatası veriyor. Ne yapmalıyım

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.