C# Merkez Bankası Döviz Kuru Bilgilerini Çekme – XML
C# Merkez Bankası Döviz Kuru Bilgilerini Çekme - XML
2

C# derslerimize merkez bankasından döviz kurlarını çekme örneği ile devam ediyoruz. Döviz bilgilerini Merkez bankasının https://www.tcmb.gov.tr/kurlar/today.xml adresinden alacağız. Döviz kuru bilgilerini çekmek için kullanacağımız sayfayı açınca

<Currency CrossOrder="0" Kod="USD" CurrencyCode="USD">
			<Unit>1</Unit>
			<Isim>ABD DOLARI</Isim>
			<CurrencyName>US DOLLAR</CurrencyName>
			<ForexBuying>6.0578</ForexBuying>
			<ForexSelling>6.0687</ForexSelling>
			<BanknoteBuying>6.0536</BanknoteBuying>
			<BanknoteSelling>6.0778</BanknoteSelling>
			<CrossRateUSD/>
			<CrossRateOther/>
		
	</Currency>

şeklinde bir çıktı alacağız, burada verilen döviz bilgilerinden
Currency : Para birimine ait bilgilerin bulunduğu alan
Isim : Para biriminin adı
ForexBuying: Kur alış
ForexSelling : Kur satış’ı ifade ediyor.
İlk olarak anlık döviz bilgilerini görüntüleyeceğimiz form tasarımını oluşturalım.

C# Merkez Bankası Döviz Kuru Bilgilerini Çekme - XML
C# Merkez Bankası Döviz Kuru Bilgilerini Çekme – XML

Daha sonra kodlarımız

 //Xml verileri
        XDocument tcmbdoviz = XDocument.Load("http://www.tcmb.gov.tr/kurlar/today.xml");

        /*
        Merkez bankasından günlük döviz kurlarını alabiliriz.
        http://www.tcmb.gov.tr/kurlar/today.xml
        Örnek today.xml çıktısı
        <Currency Kod="USD" CurrencyCode="USD">
        <Unit>1</Unit>
        <Isim>AMERİKAN DOLARI</Isim>
        <CurrencyName>US DOLLAR</CurrencyName>
        <ForexBuying>1.5218</ForexBuying>
        <ForexSelling>1.5291</ForexSelling>
        <BanknoteBuying>1.5207</BanknoteBuying>
        <BanknoteSelling>1.5314</BanknoteSelling>
        <CrossRateUSD>1</CrossRateUSD>
         https://www.bilisimogretmeni.com/
        <CrossRateOther></CrossRateOther>
        </Currency>

        Currency : Para birimine ait bilgilerin bulunduğu alan
        Isim : Para biriminin adı
        ForexBuying: Kur alış
        ForexSelling : Kur satış 
        */

        public Anaform()
        {
            InitializeComponent();
        }

        private void Anaform_Load(object sender, EventArgs e)
        {
            label1.Text = "";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Verileri listbox'a aktar
            listBox1.Items.Clear();

            try
            {
                //Linq kullanarak verileri getir
                var kurbilgileri = from kurlar in tcmbdoviz.Descendants("Currency")
                                   select new
                                   {
                                       kuraditr = kurlar.Element("Isim").Value
                                   };
                //Listbox'a aktar
                foreach (var dovizler in kurbilgileri)
                {
                    listBox1.Items.Add(dovizler.kuraditr.ToString());
                }
            }
            catch (Exception hata)
            {
                label1.Text = "Veriler alınamadı. Hata :" + hata.Message;
                return;
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Elemanlar değiştiğinde https://www.bilisimogretmeni.com/
            var kurbilgileri = from kurlar in tcmbdoviz.Descendants("Currency")
                               where kurlar.Element("Isim").Value == listBox1.SelectedItem.ToString()
                               select new
                               {
                                   kuradiing = kurlar.Element("CurrencyName").Value,
                                   kuralis = kurlar.Element("ForexBuying").Value,
                                   kursatis = kurlar.Element("ForexSelling").Value
                               };
            foreach (var veriler in kurbilgileri)
            {
                label1.Text = string.Format("Adı : {0} Alış : {1:C} Satış : {2:C}",
                    veriler.kuradiing, veriler.kuralis, veriler.kursatis);
            }
        }
Bu İçeriğe Tepkin Ne Oldu?
  • 18
    ba_ar_l_
    Başarılı
  • 1
    gayet_yi
    Gayet İyi
  • 4
    te_ekk_rler
    Teşekkürler
  • 1
    anlamad_m
    Anlamadım
  • 5
    yetersiz
    Yetersiz
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

2 Yorum
Inline Feedbacks
View all comments
Özgür Gökçe

merhaba. emeğinize sağlık. today.xml diye bir uzantının olduğunu nereden biliyorsunuz?