Základy použití XML v JavaScriptu
Technologie XML je v rámci internetu, a nejen v něm, v poslední době čím dál tím rozšířenější. I když hlavní oblast zpracování dat z XML souborů je, a zřejmě i nadále bude, vyhrazena serverovým skriptům, můžeme k datům v externích XML souborech přistupovat i pomocí JavaScriptu.
Hlavním kamenem úrazu při zpracování XML dokumentů v JavaScriptu je jako obvykle silná nekompatibilita prohlížečů. Ne všechny prohlížeče podporují funkce potřebné pro zpracování XML. Veškeré dále popsané skripty byly testovány na u nás nejrozšířenější platformě Microsoft Internet Explorer, konkrétně na verzi 5.5. Dle tvrzení výrobce v dokumentaci by měly popsané funkce pracovat již od verze MSIE 4.
XML soubor
Pro účely ukázky uvažujme jednoduchý XML soubor s daty o rodině Novákových, jehož obsah vypadá nějak takto (soubor je na disku uložen pod názvem xmltest.xml):
<?xml version=“1.0″ encoding=“Windows-1252″ ?>
<rodina>
<otec roknar=“1964″>Jan Novák</otec>
<matka roknar=“1969″>Jana Nováková</matka>
<deti>
<dite pohlavi=“M“ roknar=“1993″>Petr Novák</dite>
<dite pohlavi=“M“ roknar=“1995″>Michal Novák</dite>
<dite pohlavi=“Z“ roknar=“1998″>Adéla Nováková</dite>
</deti>
</rodina>
Otevření XML souboru
K otevření souboru slouží několik následujících řádků kódu:
function verifyfunc() {
if (xmlDoc.readyState != 4) {
return false;
}
}
var xmlDoc = new ActiveXObject(„Microsoft.XMLDOM“);
xmlDoc.async=“false“;
xmlDoc.onreadystatechange=verifyfunc;
xmlDoc.load(‚xmltest.xml‘);
var xmlObj=xmlDoc.documentElement;
V uvedeném kódu jsme především vytvořili ActiveX objekt uvedené třídy, který slouží jako jakási „brána“ k XML funkcím. Metod a funkcí objektu XMLDOM je celá řada a jejich popis by byl nad rámec tohoto článku (případné zájemce odkazuji například na kvalitně zpracovaný referenční přehled na http://www.devguru.com). Pro inicializaci jsme použili jen nezbytné minimum metod a vlastností:
- Nastavení vlastnosti async na false zabezpečí, že provádění dalšího kódu (po započetí nahrávání) bude pokračovat až po úplném nahrání XML souboru, a nedojde tedy k práci s neinicializovaným objektem.
- Vlastností onreadystatechange nastavujeme handler pro událost změny stavu nahrávání XML souboru; protože nahráváme synchronně, jedná se víceméně o formální zajištění.
- Metoda load provede vlastní nahrání XML souboru.
- Nakonec s využitím vlastnosti documentElement získáme výchozí „uzel“ celého XML dokumentu – objekt s rozhraním typu Element.
Čtení XML dokumentu
XML dokumenty jsou organizovány ve stromové struktuře. Ke zpřístupnění jednotlivých větví a uzlů stromu slouží rozhraní Element, obsahující celou řadu metod a vlastností, které zpřístupní jednak parametry samotného uzlu, jednak jeho „předchůdce“ a „následníky“. Zájemce o podrobný popis bych opět odkázal na výše uvedený zdroj, pro základní čtení XML dokumentu nicméně vystačíme se dvěma až třemi základními postupy, jež jsou dostatečně zřejmé z následující ukázky kódu. Tato ukázka čte údaje o složení rodiny z výše uvedeného XML dokumentu a zobrazuje je v alert okně:
function WriteXML() {
var t= „Otec: “ + xmlObj.childNodes(0).text + “ (narozen “ + xmlObj.childNodes(0).getAttribute(„roknar“) + „)\n“
t += „Matka: “ + xmlObj.childNodes(1).text + “ (narozena “ + xmlObj.childNodes(1).getAttribute(„roknar“) + „)\n\n“
t += „Děti:\n“
var i;
for(i=0; i<xmlObj.childNodes(2).childNodes.length; i++ ) {
t += “ “ + xmlObj.childNodes(2).childNodes(i).text + “ (narozen “ + xmlObj.childNodes(2).childNodes(i).getAttribute(„roknar“) + „)\n“
}
alert(t);
}
Uvedený skript můžete vidět při práci.
XML je podle vyjádření mnohých perspektivní technologií, jejíž hlavní výhodou je relativně snadná přenositelnost dat mezi datovými zdroji i platformami. Budete-li mít zájem, můžeme si v dalších článcích na toto téma ukázat, třeba opět prostřednictvím JavaScriptu, další XML funkce, případně také řešení konkrétních aplikací, o něž budete mít zájem.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Monitory OLED: klíčové pojmy a funkce
13. května 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Jak se chránit před podvody na internetu – část 2
14. října 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024