Přehled zdrojů
| Zdroj | Co obsahuje | Formát |
|---|---|---|
| Kurzy devizového trhu ČNB | denní kurzy asi 30 měn vůči koruně | malé XML, každý pracovní den |
| Registr smluv | smlouvy veřejných institucí nad 50 000 Kč bez DPH | měsíční XML soubory, desítky až stovky MB |
| RÚIAN (ČÚZK) | adresy, budovy, obce a jejich hranice | XML ve formátu GML v archivech ZIP |
| ARES | údaje o firmách podle IČO | od roku 2023 REST API v JSON — XML služby skončily |
Data v XML jsou z definice strojově čitelná: program je stáhne, ověří a zpracuje bez ručního přepisování. Stejný postup — stáhnout, zkontrolovat, vybrat data přes XPath — funguje u všech zdrojů na této stránce.
Kurzy ČNB
Česká národní banka vyhlašuje každý pracovní den kurzy devizového trhu. Kromě textové a HTML
podoby je publikuje i jako XML na adrese
…/kurzy_devizoveho_trhu/denni_kurz.xml. Kurzy k jinému dni získáš
parametrem ?date=DD.MM.RRRR. Soubor je malý a celý stojí na atributech:
<?xml version="1.0" encoding="UTF-8"?>
<kurzy banka="CNB" datum="25.09.2026" poradi="186">
<tabulka typ="XML_TYP_CNB_KURZY_DEVIZOVEHO_TRHU">
<radek kod="EUR" mena="euro" mnozstvi="1" kurz="24,350" zeme="EMU"/>
<radek kod="PHP" mena="peso" mnozstvi="100" kurz="34,186" zeme="Filipíny"/>
<radek kod="USD" mena="dolar" mnozstvi="1" kurz="21,359" zeme="USA"/>
</tabulka>
</kurzy> | Atribut | Význam |
|---|---|
| kurzy/@datum | den, pro který kurzy platí, ve tvaru DD.MM.RRRR |
| kurzy/@poradi | pořadové číslo kurzovního lístku v roce |
| radek/@kod | kód měny podle ISO 4217 |
| radek/@mnozstvi | počet jednotek měny, ke kterým se kurz vztahuje (1, 100 …) |
| radek/@kurz | kurz v Kč za uvedené množství, s desetinnou čárkou |
| Výraz | Co vybere | Výsledek |
|---|---|---|
| /kurzy/@datum | datum, ke kterému kurzy platí | 25.09.2026 |
| //radek[@kod="EUR"]/@kurz | kurz eura jako text — s desetinnou čárkou | 24,350 |
| number(translate(//radek[@kod="EUR"]/@kurz, ",", ".")) | kurz eura jako číslo: čárku je nejdřív potřeba nahradit tečkou | 24.35 |
| //radek[@mnozstvi != 1]/@kod | měny, jejichž kurz je uvedený za víc než jednu jednotku | PHP |
| count(//radek) | počet měn v souboru | 3 |
Dvě pasti: kurz je zapsaný s desetinnou čárkou, takže
funkce number() ho bez úpravy vrátí jako NaN. A u měn s atributem
mnozstvi="100" (třeba filipínské peso) je kurz za sto jednotek — před přepočtem
ho vyděl množstvím.
Registr smluv
Zákon o registru smluv ukládá státu, krajům, obcím a dalším institucím zveřejňovat smlouvy s hodnotou nad 50 000 Kč bez DPH. Metadata všech smluv jsou otevřená data: na adrese data.smlouvy.gov.cz je XML index a v něm odkaz na soubor za každý měsíc.
<index xmlns="http://portal.gov.cz/rejstriky/ISRS/1.2/">
<dump>
<mesic>1</mesic>
<rok>2017</rok>
<hashDumpu algoritmus="sha1">…</hashDumpu>
<velikostDumpu>72499846</velikostDumpu>
<casGenerovani>…</casGenerovani>
<dokoncenyMesic>1</dokoncenyMesic>
<odkaz>https://data.smlouvy.gov.cz/dump_2017_01.xml</odkaz>
</dump>
…
</index>
Index u každého souboru uvádí velikost a otisk SHA-1, takže stažený soubor lze ověřit.
Hodnota dokoncenyMesic 0 znamená, že měsíc ještě běží a soubor se bude dál
doplňovat. Při změně nebo znepřístupnění smlouvy se přegenerují i starší soubory, proto je
stahuj znovu podle času generování. Každý záznam obsahuje smluvní strany, předmět, datum
uzavření, hodnotu a odkazy na přílohy:
<?xml version="1.0" encoding="UTF-8"?>
<dump xmlns="http://portal.gov.cz/rejstriky/ISRS/1.2/">
<mesic>08</mesic>
<rok>2026</rok>
<dokoncenyMesic>1</dokoncenyMesic>
<zaznam>
<identifikator><idSmlouvy>…</idSmlouvy><idVerze>…</idVerze></identifikator>
<odkaz>https://smlouvy.gov.cz/smlouva/…</odkaz>
<casZverejneni>2026-08-03T10:12:40+02:00</casZverejneni>
<smlouva>
<subjekt>
<datovaSchranka>…</datovaSchranka>
<nazev>Město …</nazev>
<ico>…</ico>
</subjekt>
<smluvniStrana>
<nazev>Stavební firma s.r.o.</nazev>
<ico>…</ico>
</smluvniStrana>
<predmet>Oprava chodníku v ulici …</predmet>
<datumUzavreni>2026-07-28</datumUzavreni>
<hodnotaBezDph>185000</hodnotaBezDph>
</smlouva>
<prilohy>
<priloha>
<nazevSouboru>smlouva.pdf</nazevSouboru>
<odkaz>https://smlouvy.gov.cz/smlouva/soubor/…</odkaz>
</priloha>
</prilohy>
<platnyZaznam>1</platnyZaznam>
</zaznam>
</dump>
Všechny elementy leží ve výchozím jmenném prostoru http://portal.gov.cz/rejstriky/ISRS/1.2/. XPath 1.0 výchozí jmenný prostor
nezná, proto výraz bez prefixu nenajde nic a musíš si zavést vlastní prefix — zde
s (viz Jmenné prostory):
| Výraz | Co vybere | Výsledek |
|---|---|---|
| //s:zaznam/s:smlouva/s:predmet | předměty všech smluv | Oprava chodníku v ulici … |
| sum(//s:smlouva/s:hodnotaBezDph) | součet hodnot smluv bez DPH | 185000 |
| //smlouva | bez prefixu nenajde nic — elementy jsou ve výchozím jmenném prostoru | (nic) |
Měsíční soubor má desítky až stovky megabajtů. Do prohlížeče ani do Excelu se nevejde
pohodlně; zpracuj ho programem, který čte XML proudově (SAX, StAX, iterparse v
Pythonu) — rozdíl vysvětluje kapitola Jak funguje
XML.
RÚIAN: adresy a území
Registr územní identifikace, adres a nemovitostí (RÚIAN) spravuje ČÚZK. Data vydává ve výměnném formátu RÚIAN (VFR): jde o XML ve formátu GML (Geography Markup Language), které vedle adres nese i geometrii — polohu adresních míst, obrysy budov a hranice obcí. Soubory jsou zabalené v archivech ZIP.
- Stavová data — celý stav k poslednímu dni měsíce, za celou republiku nebo po obcích.
- Změnová data — jen změny od zvoleného data, pro průběžnou aktualizaci.
Soubory stáhneš přes aplikaci Veřejný dálkový přístup (VDP) nebo automaticky přes kanály Atom; archiv měsíčních souborů je na services.cuzk.gov.cz/vfr. Data jsou otevřená pod licencí CC BY 4.0. Pokud potřebuješ jen seznam adres bez geometrie, ČÚZK nabízí i jednodušší adresní místa ve formátu CSV.
A co ARES?
Registr ekonomických subjektů ARES dlouho nabízel XML služby a mnoho starších návodů s nimi pořád počítá. Nový ARES na ares.gov.cz ale od roku 2023 poskytuje údaje o firmách přes REST API v JSON a původní XML služby byly vypnuty. Pro práci s JSON použij náš JSON validátor a nástroje.
Postup pro jakýkoli zdroj
- Stáhni soubor a ověř, že je dobře formovaný — třeba v XML validátoru.
- Pokud poskytovatel zveřejňuje XSD, ověř soubor proti němu; změnu formátu tak zjistíš dřív, než rozbije zpracování.
- Najdi jmenné prostory v kořenovém elementu a zaveď si pro ně prefixy.
- Vyzkoušej výrazy XPath na malém výňatku, teprve pak je pusť na celý soubor.
- Čísla a data převeď z textu až při zpracování — české zdroje často používají desetinnou čárku a datum DD.MM.RRRR.