Data2type GmbH XML е едноставен со едноставен XML

(Извадок од „Перл и XML“ од Ерик Т. Реј и asonејсон Мекинтош)

gmbh

Постојат луѓе кои веруваат дека XML е изум на болен ум, веројатно со цел истребување на човештвото. Понекогаш може да разберете. Вграденото обележување со помали и поголеми карактери и резови не е баш олеснување за очите. Ако додадеме вгнездување на елементи, типови на јазли и DTD (кои беа толку пријатно едноставни во споредба со XML-шемата), тогаш би сакале времињата на CSV-датотеките (одделени вредности со запирка, линија е збир на податоци, индивидуална Колоните се обележани со фиксен сепаратор) и тагуваат за нивниот парсер, функцијата сплит.

'Llе ви кажеме една тајна: Пишувањето програми за обработка на XML не е толку тешко. Целиот куфер полн со алатки е достапен за да ве ослободи од безброј досадни детали за анализаторот и создавањето структура на податоците, со едноставни API што може да се разберат за неколку минути. Ако навистина ви е потребна комплексноста на XML апликацијата и сите гарнитури, тогаш можете да ја имате, но не мора. Работата со XML може да биде едноставна, колку и длабока, во зависност од апликацијата. Постојат и едноставни алатки за едноставни задачи.

За да го демонстрираме ова, да погледнеме во многу едноставен модул наречен XML: Едноставен од Грант Меклин. Со минимална обука, можете да постигнете изненадувачки голем успех во обработката на XML.

Типична програма чита XML документ, менува нешто и го запишува резултатот назад во датотека. XML: Едноставно е направено токму за овој процес. Еден повик со функција чита XML документ и го зачувува во главната меморија во форма на вгнездени табели за хаш. Елементите и податоците се претставени со табелите за хаш. Откако ќе ги направите посакуваните промени, повикувате друга функција и го запишувате резултатот во датотека.

Ајде да го пробаме. Како и со секој модул, ние прво мора да вчитаме XML: Едноставно во нашата програма со помош на употреба:

Со повикот, XML: Simple ги дефинираше следниве две функции за нас:

Оваа функција чита XML документ од датотека или низа и гради структура на податоци што ги содржи податоците и елементите на XML документот. Резултат на функцијата е оваа структура на податоци во форма на референца за хаш.

Добива референца за хаш со шифриран документ и го претвора во правилно обележување на XML. Резултатот од функцијата е текстуална низа со конвертиран XML документ.

Се разбира, ако сакате, можете исто така да го изградите документот од нула со едноставно градење на соодветните структури на податоци "рачно" со помош на хаши, низи и жици. Ако з. На пример, ако датотека се креира за прв пат, тоа може да биде дури и потребно. Ова не е проблем, треба да се избегнуваат само циркуларни препораки. Инаку, модулот нема да работи правилно.

На пример, да речеме дека нашиот шеф сака да испрати е-пошта до група луѓе. За таа цел, тој може да го користи SpamChucker од WarbleSoft, позната апликација за управување со списоци за испраќање. SpamChucker, меѓу другото, има можност за увоз или извоз на XML-датотеки што содржат списоци со адреси за пошта. Шефот има посебни барања, а тоа е случај и во нашиот случај: Имињата на клиентите треба да бидат напишани со големи букви. Потребна е програма што чита XML-датотека, ги претвора имињата во големи букви и потоа ја зачувува променетата датотека повторно.

Ние го прифаќаме предизвикот и прво ја разгледуваме XML-датотеката за да ја разбереме нејзината структура. Во следниот пример гледаме ваква поштенска листа.

Пример: XML документ со списокот за испраќање на SpamChucker

По брзото разгледување на документацијата на XML: Simple (перлдок XML: Simple), се чувствуваме во можност да ја напишеме скриптата прикажана на примерот подолу:

Пример: Скрипта за конвертирање на имиња на клиенти во големи букви

Ако ја извршуваме оваа програма (малку несовесно, бидејќи излезот на податоци е всушност одговорност на нашиот шеф), го добиваме овој излез:

Честитки Ја напишавте вашата прва програма за обработка на XML податоци и тоа им оди одлично. Па, скоро одлично. Излезот е малку поразличен отколку што се очекуваше. Од една страна, редоследот на елементите се менува бидејќи хаш-низите не добиваат редослед на вметнатите копчиња. Покрај тоа, вдлабнатините помеѓу секој елемент може да се изгубени. Може ли тоа да биде проблем?

Дојдовме до една интересна точка што ќе не зафати. Едноставноста и комплетноста се спротивставени цели. Како развивач, вие сами треба да одлучите кои делови од обележувањето треба да бидат точни, а кои не. Понекогаш редоследот на елементите ќе биде важен, во тој случај XML: Simple не може да се користи. Можно е исто така да се задржат контролните упатства (ПИ или упатства за обработка), повторно случај во кој се исклучува XML: Simple. Значи, мора точно да знаете кои модули се користат и што можат и што не можат да направат. Имајте на ум, одлуката за алатките мора да се донесе пред програмирањето. Во нашиот случај, се разбира, ја испробавме изменетата датотека со SpamChucker, сè помина одлично, а шефот беше среќен. Генерираниот документ е доволно близу до оригиналот за да ги исполни барањата на апликацијата.

Еден е склон да каже дека промените што ги направивме се: a семантички еквивалентно Документ, но тоа не е целосно точно. Редоследот на елементите е генерално важен во XML. Имаме само среќа да имаме дарежлива апликација и подеднакво дарежлив краен корисник во овој случај, чии релативно ниски барања се исполнети.

Замислете се на себеси како личност која може да се справи со XML и Perl!

Секако дека сме само на почетокот на нашето патување. Поголемиот дел од книгата лежи пред нас, полн со совети и техники кои ќе ви помогнат со XML. Не сите задачи поврзани со XML се толку едноставни како што е само прикажана. Но, ништо не е толку сложено или тешко, што чеканот Перл не би бил доволен за да се фалсификува железото XML со него.