
Geçenlerde elime küçük bir proje geldi. Aslında istenilen şey çok basit. Öncelikle merkez bankasının hergun yayınladığı doviz kurlarını sitede gosterip. O kurların kayıtlarının database de tutulması ve toplu şekilde mail gonderilmesi gibi bişeydi. Bu kısımda sizinle sadece kur bilgilerini nasıl alacagınızı ve web sayfanızda nasıl gostereceginizi gosterecegim.Eger isterseniz bütün projeyide burada yayinlayabilirim. Umarım yardımcı olur.
İlk olarak merkez bankasının yayınlamış olduğu xml formatındaki dosyanın bir yapısını inceleyelim. Aslında eskiden bu format html tabanlı olarak yayınlanırdı ve developerlar herhangi bir değişiklik oldugunda butun parse mekanizmalarını değiştirmek zorunda kalırlardı, yada merkez bankası formatı hep sabit tutmak zorunda kalırdı . Şimdi format xml'e dokuldukten sonra işlev biraz daha kolaylaşmış oldu aslında format aşagıdaki gibi:
Gördüğünüz gibi Bir Currency tagının içersinde Unit, Isim, CurrencyName, ForexBuying,
ForexSelling, BanknoteBuying, BanknoteSelling, CrossRateUSD, CrossRateOther sub tagları bulunuyor ve Currency de Tarih_Date tagının içersinde bulunuyor. Bizim kullanacagımız kısımlar İsim, ForexBuying ve ForexSelling olacak aslında tabiki tarih için Tarih_Date'i kullanacağiz.
Şimdi sıra bu yapıyı C# kullanarak nasıl parse edeceğimize geldi. Aşağıdaki kod bu işlemi yapıyor.
public void GetDoviz()
{
XmlTextReader xmlTextReader = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
XmlDocument dovizXmlDocument = new XmlDocument();
dovizXmlDocument.Load(xmlTextReader);
XmlNode tarih = dovizXmlDocument.SelectSingleNode("/Tarih_Date/@Tarih");
XmlNodeList mylist = dovizXmlDocument.SelectNodes("/Tarih_Date/Currency");
XmlNodeList adi = dovizXmlDocument.SelectNodes("/Tarih_Date/Currency/Isim");
XmlNodeList kod = dovizXmlDocument.SelectNodes("/Tarih_Date/Currency/@Kod");
XmlNodeList doviz_alis = dovizXmlDocument.SelectNodes("/Tarih_Date/Currency/ForexBuying");
XmlNodeList doviz_satis = dovizXmlDocument.SelectNodes("/Tarih_Date/Currency/ForexSelling");
this.Title = tarih.InnerText.ToString() + " tarihli merkez bankasi kur bilgileri";
lblDate.Text = tarih.InnerText.ToString() + " tarihli merkez bankasi kur bilgileri";
for (int i = 0; i <>{
if (kod.Item(i).Value == "USD")
{
lblUSDBuying.Text = "$" + doviz_alis.Item(i).InnerText.ToString();
lblUSDSelling.Text = "$" + doviz_satis.Item(i).InnerText.ToString();
}
if (kod.Item(i).Value == "EUR")
{
lblEuroBuying.Text = "€" + doviz_alis.Item(i).InnerText.ToString();
lblEuroSelling.Text = "€" + doviz_satis.Item(i).InnerText.ToString();
}
}
}
Hepinize iyi kodlamalar...



