Data2type GmbH XML je jednoduchý s XML Simple

(Výňatok z „Perl a XML“ od Erika T. Raya a Jasona McIntosha)

jednoduchý

Existujú ľudia, ktorí veria, že XML je vynález chorej mysle, pravdepodobne s cieľom vyhladiť ľudstvo. Niekedy to pochopíte. Vložený znak s menšími a väčšími znakmi a lomítkami nie je zrovna úľavou pre oči. Ak k tomu pripočítame vnorenie prvkov, typov uzlov a DTD (ktoré boli v porovnaní so schémou XML také príjemne jednoduché), boli by sme radi časy súborov CSV (Comma Separated Values, čiara je množina údajov, jednotlivé Stĺpce sú označené pevným oddeľovačom) a oplakávajú ich syntaktický analyzátor, funkciu rozdelenia.

Prezradíme vám tajomstvo: Písanie programov na spracovanie XML nie je také ťažké. K dispozícii je celý kufor plný nástrojov, ktorý vás zbaví nespočetných nepríjemných detailov syntaktického analyzátora a vytvorenia dátovej štruktúry s jednoduchými API, ktorým možno porozumieť za pár minút. Ak skutočne potrebujete zložitosť XML aplikácie a všetky úpravy, potom ju môžete mať, ale nemusíte. Práca s XML môže byť v závislosti od aplikácie tak jednoduchá, ako aj hlboká. Existujú aj jednoduché nástroje na jednoduché úlohy.

Aby sme to demonštrovali, pozrime sa na veľmi jednoduchý modul s názvom XML: Simple od Granta McLeana. S minimálnym zaškolením môžete dosiahnuť prekvapivo veľký úspech v spracovaní XML.

Typický program načíta dokument XML, niečo zmení a výsledok zapíše späť do súboru. XML: Simple je vytvorený presne pre tento proces. Jedno volanie funkcie načíta dokument XML a uloží ho do hlavnej pamäte vo forme vnorených hash tabuliek. Prvky a údaje sú reprezentované hašovacími tabuľkami. Po vykonaní požadovaných zmien vyvoláte ďalšiu funkciu a výsledok zapíšete do súboru.

Vyskúšajme to. Ako každý modul, aj teraz musíme do nášho programu najskôr načítať XML: Simple pomocou použitia:

Volanie XML: Simple pre nás definovalo nasledujúce dve funkcie:

Táto funkcia číta dokument XML zo súboru alebo reťazca a vytvára dátovú štruktúru, ktorá obsahuje údaje a prvky dokumentu XML. Výsledkom funkcie je táto dátová štruktúra vo forme hash referencie.

Prijme hashový odkaz s kódovaným dokumentom a prevedie ho na správne označenie XML. Výsledkom funkcie je textový reťazec s prevedeným dokumentom XML.

Samozrejme, ak chcete, môžete tiež vytvoriť dokument od nuly jednoduchým vytvorením zodpovedajúcich dátových štruktúr „ručne“ pomocou hashov, polí a reťazcov. Ak si z. Napríklad, ak sa súbor vytvára prvýkrát, môže to byť dokonca nevyhnutné. To nie je problém, mali by ste sa vyhnúť iba kruhovým odkazom. Inak modul nebude pracovať správne.

Povedzme napríklad, že náš šéf chce poslať e-mail skupine ľudí. Na tento účel mohol použiť SpamChucker od spoločnosti WarbleSoft, známej aplikácie na správu zoznamov adries. SpamChucker má okrem iného schopnosť importovať alebo exportovať súbory XML, ktoré obsahujú zoznamy poštových adries. Šéf má špeciálne požiadavky, a to je aj prípad nášho prípadu: Mená zákazníkov by mali byť napísané veľkými písmenami. Potrebný je program, ktorý načíta súbor XML, prevedie mená na veľké písmená a potom zmenený súbor znova uloží.

Prijímame výzvu a najskôr sa pozrieme na súbor XML, aby sme pochopili jeho štruktúru. V nasledujúcom príklade vidíme takýto zoznam adries.

Príklad: XML dokument so zoznamom adries SpamChucker

Po krátkom nahliadnutí do dokumentácie XML: Simple (perldoc XML: Simple) sa cítime schopní napísať skript uvedený v príklade nižšie:

Príklad: Skript na prevod mien zákazníkov na veľké písmená

Ak spustíme tento program (trochu neuvážený, pretože za dátový výstup je vlastne zodpovedný náš šéf), dostaneme tento výstup:

Blahoželáme! Napísali ste svoj prvý program na spracovanie údajov XML a darí sa mu. No takmer vynikajúce. Výstup je trochu iný, ako sa očakávalo. Na jednej strane sa mení poradie prvkov, pretože hašovacie polia nedostávajú poradie vložených klávesov. Okrem toho sa mohlo stratiť prehĺbenie medzi jednotlivými prvkami. Môže to byť problém?

Dospeli sme k zaujímavému bodu, ktorý nás zamestná. Jednoduchosť a úplnosť sú protichodné ciele. Ako vývojár sa musíte sami rozhodnúť, ktoré časti vášho označenia musia byť presné a ktoré nie. Niekedy bude dôležité poradie prvkov, v takom prípade nie je možné použiť XML: Simple. Mali by sa tiež uchovať prípadné kontrolné pokyny (PI alebo pokyny na spracovanie), čo je opäť prípad, v ktorom je XML: Simple vylúčený. Musíte teda presne vedieť, aké moduly sa používajú a čo môžu a nemôžu robiť. Nezabudnite, že o nástrojoch musí byť rozhodnuté pred programovaním. V našom prípade sme samozrejme upravený súbor vyskúšali pomocou SpamChuckeru, všetko prebehlo super a šéf bol spokojný. Vygenerovaný dokument je dostatočne blízko originálu, aby vyhovoval požiadavkám aplikácie.

Jeden sa prikláňa k názoru, že zmeny, ktoré sme vykonali, sú a významovo ekvivalentný Dokument, ale to nie je tak celkom pravda. Poradie prvkov je v XML všeobecne dôležité. Máme šťastie, že v tomto prípade máme veľkorysú aplikáciu a rovnako veľkorysého koncového používateľa, ktorého relatívne nízke požiadavky sú splnené.

Predstavte si seba ako človeka, ktorý zvládne XML a Perl!

Sme samozrejme iba na začiatku našej cesty. Väčšina knihy leží pred nami, plná tipov a techník, ktoré vám pomôžu s XML. Nie všetky úlohy spojené s XML sú také jednoduché ako tá, ktorá je práve uvedená. Ale nič nie je také zložité alebo ťažké, že by Hammer Perl nestačil na to, aby s ním vytvoril železné XML.