2008-07-30

XML a'la NBP

Fajnie że tak potężne instytucje jak NBP udostępniają dane w wersji przyjaznej dla developerów. Mowa tu o kursach walut. Udostępniane w formacie XML dane, łatwe do pobrania i zaimplementowania na własnym serwisie.

Jednak malutki mankament stanowczo utrudnia pobieranie danych. Aby mieć dostęp do archiwalnych kursów (od 2002 roku), pliki XML są bardzo specyficznie i niewygodnie nazywane. Nazwa pliku na dzień wczorajszy to: a147z080729.xml, łatwo się więc domyśleć że 080729 to rok, miesiąc, dzień kursu. Numer 147 to numer tabeli NBP, zawierająca dany kurs. Aby się dostać do danych z 28 lipca nie tyle należy podmienić datę co zmniejszyć numer tabeli o jeden. Dlatego przy pobieraniu danych archiwalnych, nieźle trzeba się nakombinować, pamiętając o pomijaniu sobót, niedziel i świąt, inkrementując numer tabeli.

NBP proponuję zrezygnować z numerowania tabeli w nazwie pliku, wystarczy typ tabeli "a" oraz data, aby unikalnie nazwać wszystkie tabele kursów walut.

Troszkę kodu:
$data = date("Y-m-d");
$data2 = date("ymd", strtotime($data));
.....
$j = sprintf("%03d",$i);
$xml = @simplexml_load_file("http://nbp.pl/Kursy/xml/a".$j."z".$data2.".xml");

Brak komentarzy: