Simple API for XML

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Tato stránka na české Wikipedii obsahuje popis a vysvětlení Simple API for XML (SAX), což je rozhraní pro zpracování XML dokumentů. Sax je událostmi řízený přístup, který umožňuje čtení a zpracování velkých XML souborů efektivně a s minimálním využitím paměti. Tento článek poskytuje přehled SAX API, včetně popisu jeho komponent, takových jako událostní generátory, manipulátory obsluhující události a sady rozhraní pro čtení a zápis XML dat. Taktéž jsou zde uvedeny různé příklady použití SAX API pro analýzu a validaci XML dokumentů.

Simple API for XML (zkráceně SAX) umožňuje sériový přístup ke XML. Jde o tzv. proudové zpracování, při kterém se dokument rozdělí na jednotlivé jeho části (počáteční a koncové značky, obsahy elementů, komentáře, atd.). Postupně se pak volají jednotlivé události, které ohlašují nalezení konkrétní části. Způsob zpracování těchto jednotlivých událostí je pak již plně v kompetenci programátora.

Tato metoda vypadá na první pohled velice náročně, své uplatnění však má v konkrétních složitějších způsobech zpracování XML, zvláště tam, kde se k dokumentu nepřistupuje náhodně, ale sekvenčně se postupně čte celý obsah. Její další výhoda spočívá v rychlosti zpracovávání a menší paměťové náročnosti. +more Oproti DOMu bývá několikrát rychlejší, což u větších dokumentů může značně zkrátit čas vykonávání jednotlivých skriptů.

Příklad použití SAXu v PHP

parser = xml_parser_create;

// při nalezení počátečního a koncového tagu se bude volat funkce onStartElement a onEndElement xml_set_element_handler($this->parser, "onStartElement", "onEndElement");

// nastavení funkce pro zpracování obsahu tagů na onContent xml_set_character_data_handler($this->parser, "onContent");

// postupné čtení vstupního souboru (zde example. xml) if ($f = fopen("example. +morexml","r")) { // čtení souboru po 4 KB a jeho zpracovávání parserem while ($xml_data = fread($f,4096)) if (. $this->parseString($xml_data, feof($f))) { // vrátí-li metoda nulovou hodnotu, došlo k chybě echo "Chyba parsování. "; } fclose($f); }.

// tato funkce je volána při nalezení počátečního tagu function onStartElement($parser, $elementName, $attributes) { echo "nalezen počátečni tag s názvem $elementName: "; foreach ($attributes as $nazev => $hodnota) echo " atribut $nazev = '$hodnota';\n"; echo "\n"; }

// tato funkce je volána při nalezení koncového tagu function onEndElement($parser, $elementName) { echo "nalezen koncový tag s názvem $elementName: "; }

// tato funkce je volána poté, co je znám obsah elementu function onContent ($parser, $content) { echo "obsah elementu: ".$content." " ; } ?>

Kategorie:XML Kategorie:Rozhraní pro programování aplikací

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top