Merkez Bankası günlük olarak  döviz kurlarını “http://www.tcmb.gov.tr/kurlar/today.xml” dosyasında yayınlar.

Bu kurları almak için Java da aşağıdaki kod kullanılabilir.

Öncelikle URL’i verilen dosya okunur ve parse edilir. Daha sonra normalleştirme yapılır. Bu xml dokümanında tagler içindeki boşlukları, commentleri siler. Bölünmüş kelimeleri birleştirir.

Currency TagName’indeki elemanlar alınır ve bu elemanlar(kur) üzerinde dolaşılır.

Sonrasında etiket bilgisi kullanılarak eleman’ın detay bilgileri alınır.Eleman detaybilgilerinin etiketleri için xml dokümanını açıp inceleyebilirsiniz.

————————

URL xmlURL;
try {
xmlURL = new URL(“http://www.tcmb.gov.tr/kurlar/today.xml”);

InputStream xml = xmlURL.openStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();kullanılması
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xml);

// genel olarak  tagler içindeki boşlukları kaldırır. Bölünmüş kelimeleri birleştirir. Commentleri kaldırır

doc.getDocumentElement().normalize();

// Currency elemanını al ve dolaş
NodeList nodes = doc.getElementsByTagName(“Currency”);
for (int i = 0; i < nodes.getLength(); i++) {

Element element = (Element) nodes.item(i);
element.getAttribute(“CurrencyCode”);
getValueofElement(element,”CurrencyName”);
getValueofElement(element,”BanknoteBuying”);
getValueofElement(element,”BanknoteSelling”);
getValueofElement(element,”ForexBuying”);
getValueofElement(element,”ForexSelling”);
getValueofElement(element, “Unit”);

}

xml.close();

kullanılması} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

————————–

 

private static String getValueofElement(Element parentElement, String label) {

String retval=””;
Element requiredElement=(Element) parentElement.getElementsByTagName(label).item(0);

try {
Node child = requiredElement.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
retval= cd.getData();
}
else
{
// donothing
//retval=””;
}

} catch (Exception ex) {
}

return retval;
}

———————————————-