C# İle Merkez Bankası Döviz Kurlarının Elde Edilmesi
-
c# ile merkez bankasının http://www.tcmb.gov.tr/kurlar/today.xml xml inden döviz kurlarıı çekmem gerekiyor.bununla ilgili örnekler var araştırdım ama yazdığım kodda
XmlTextReader rdr = new XmlTextReader ();
XmlDocument xml = new XmlDocument();
xml.Load();
burada hata alıyorum yardım edebilecek var mı?
-
Şu altta ki şey işini görmeli
private string usdAlis;
private string usdSatis;
private string euAlis;
private string euSatis;private void DovizCek()
{
XmlTextReader xmlReader = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlReader);
XmlNode topNode = xmlDocument.DocumentElement;
XmlNode dolarAlis = xmlDocument.SelectSingleNode("//Tarih_Date//Currency[Kod='USD']|//ForexBuying");
XmlNode dolarSatis = xmlDocument.SelectSingleNode("//Tarih_Date//Currency[Kod='USD']|//ForexSelling");
XmlNode GBPAlis = xmlDocument.SelectSingleNode("//Tarih_Date//Currency[Kod='GBP']|//ForexBuying");
XmlNode GBPSatis = xmlDocument.SelectSingleNode("//Tarih_Date//Currency[Kod='GBP']|//ForexSelling");
XmlNode euroAlis = topNode.SelectSingleNode("Currency[CurrencyName='EURO']");
XmlNode sterlincanAlis = topNode.SelectSingleNode("Currency[CurrencyName='POUND STERLING']");
sterlinAlis = sterlincanAlis.ChildNodes[3].InnerText;
sterlinSatis = sterlincanAlis.ChildNodes[4].InnerText;
usdAlis = dolarAlis.InnerText;
usdSatis = dolarSatis.InnerText;
euAlis = euroAlis.ChildNodes[3].InnerText;
euSatis = euroAlis.ChildNodes[4].InnerText;
} -
eyw sagolasın sanırım merkez bankasını xmlinde sorun oluyo arada bağlanamıyor sorun ondanmıs
-
hoca karşı olsam da şu çizki olayına mecbur yapacaz:)
-
daha önce açmıştım ben bu konuyu devam ediyorum projeye veri tabanına kaydetcem verileri ama xmlden çektiğim veriler null donuyo neden oyle oluyo acaba yardım edebilcek var mı? yazdığım kod:
XmlTextReader rdr = new XmlTextReader("http://www.tcmb.gov.tr/kurlar/today.xml");
XmlDocument xml = new XmlDocument();
xml.Load(rdr);
XmlNode topnode = xml.DocumentElement;
XmlNode tarih = xml.SelectSingleNode("/Tarih_Date/@Tarih");
XmlNodeList myList = xml.SelectNodes("/Tarih_Date/Currency");
XmlNodeList kod = xml.SelectNodes("/Tarih_Date/Currency/@Kod");
XmlNodeList birim = xml.SelectNodes("/Tarih_Date/Currency/Unit");
XmlNodeList adi = xml.SelectNodes("/Tarih_Date/Currency/Isim");
XmlNodeList doviz_alis = xml.SelectNodes("/Tarih_Date/Currency/ForexBuying");
XmlNodeList doviz_satis = xml.SelectNodes("/Tarih_Date/Currency/ForexSelling");
XmlNodeList efektif_alis = xml.SelectNodes("/Tarih_Date/Currency/BanknoteBuying");
XmlNodeList efektif_satis = xml.SelectNodes("/Tarih_Date/Currency/BanknoteSelling");
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["KurConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("InsertXml", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection.Open();
int x = 19;
for (int i = 0; i < x; i++)
{
cmd.Parameters.Add("@trh", SqlDbType.DateTime).Value = tarih.InnerText;
cmd.Parameters.Add("@d_kod", SqlDbType.NVarChar, 10).Value = kod.Item(i).InnerText.ToString();
cmd.Parameters.Add("@brm", SqlDbType.SmallInt).Value = birim.Item(i).InnerText.ToString();
cmd.Parameters.Add("@d_ad", SqlDbType.NVarChar, 10).Value = adi.Item(i).InnerText.ToString();
cmd.Parameters.Add("@d_als", SqlDbType.Float).Value = doviz_alis.Item(i).InnerText.ToString();
cmd.Parameters.Add("@d_sts", SqlDbType.Float).Value = doviz_satis.Item(i).InnerText.ToString();
cmd.Parameters.Add("@e_als", SqlDbType.Float).Value = efektif_alis.Item(i).InnerText.ToString();
cmd.Parameters.Add("@e_sts", SqlDbType.Float).Value = efektif_satis.Item(i).InnerText.ToString();
}
cmd.ExecuteNonQuery();
cmd.Connection.Close();
-
kimse yok mu yav yardım edebilecek :S
-
hacım null gelmesinin sebepleri,
xml yapısı değişmiş olabilir , onu yeni yapıya göre ayarlaman lazım
web sitesine request yapamıyor olabilirsin.
bir de üstte bi arkadaş bi kod paylaşmış onu deneyebilir misin?
-
arkadaşın yazdığı kod çalışıyor fakat ben tek tek hepsinin kodunu girip mi çekeceğim usd euro diye?
-
üstte ki koda göre usdAlis değişkenin içi null mı peki?
-
hayır orda null değil değeri veriyor fakat benim yazdığım kodda neden olmamıs olabilir tek tek senin yazıdıgn gibi ['Kod=USD'] diye mi yazcam?
-
o şekilde dene tek tek. Öbür türlü hangi para biriminin hangi index numarasında olduğunu bilmen lazım o da zor iş
