Прављење КСМЛ докумената помоћу ПХП -а

Преглед садржаја
Пре него што уђемо у технички део стварања ових докумената, морамо прво да разумемо шта је датотека. КСМЛ, и које су његове стварне и тренутне апликације, на овај начин ћемо моћи много више да ценимо знање које можемо стећи у овом одељку.
Шта је КСМЛ датотека?Сигурно многи од вас већ знају да је то датотека КСМЛМеђутим, за оне који га не знају или први пут виде овај израз, мало ћемо објаснити његов појам. КСМЛ је језик за означавање и означавање веома сличан ХТМЛ то нам омогућава да садржај организујемо у документ. Састоји се од ознака и ентитета, а приликом генерисања морамо да следимо неколико правила.
Сигурно ћете помислити да ја описујем ХТМЛ такође, и зашто не користимо овај други уместо стварања новог језика, јер једноставно зато што КСМЛ строжи је и прилагодљивији, због чега је много флексибилнији у употреби и лакши за разумевање. Ознаке на ХТМЛ су већ дефинисани у вашем стандарду, уместо а КСМЛ етикете стварамо према правилима језика.
На почетку водича споменули смо једну од најпознатијих апликација КСМЛ а то је да се садржај организује тако да га апликације могу користити, то је оно што је у основи потребно. Приликом организовања документа КСМЛ можемо учинити оно што се зове а рашчланити, што није ништа друго него читање датотеке и ако буде слиједило стандард моћи ћемо знати каква је њена структура и тако обрадити наведени садржај у нашем програму.
У стварном контексту, КСМЛ може се користити за пренос података преко а веб сервис или за враћање и увоз података у База података. Као што видимо, то је формат преносивости, односно пренос података са једне платформе на другу. Такође ради у оквиру исте платформе, на пример конфигурационе датотеке у којој свака ознака одговара параметрима које наша апликација чита ради генерисања адекватног понашања.
Иако је у последњих неколико година формат ЈСОН је стекао велику популарност у веб окружењима, и вероватно је стекао популарност током КСМЛ, у стварности то није тако јер свако има свој простор, предност ЈСОН је да је родно у Јавасцрипт а са новим начинима рада са овим језиком конверзија је практично непотребна.
Међутим у другим окружењима као што су апликације за рачунаре, језици сервера осим Јавасцрипт и апликације које су дуго на тржишту, КСМЛ то је ваљана и широко коришћена опција.
Као и увек све зависи од наших потреба, можемо рећи ни једно ни друго ЈСОН ни КСМЛ лоши су, сваки једноставно има свој опсег и своју сврху, па ако желимо да га користимо КСМЛ и неко нам каже да смо застарели, само знајте да за наше потребе то потпуно важи.
Као што смо већ објаснили датотеку КСМЛ Састоји се од ознака, међутим, да би се исправно протумачио, мора имати наслов, а затим почети са садржајем. Заглавље је познато као ДТД или Дефиниција врсте документа, што би се могло превести као дефиниција типа документа, а затим је садржај схема или шема на шпанском.
Шта ради ДТД?Тхе ДТД је тај који ће дати информације парсер о каквој КСМЛ је и унутар схема Ту ће отићи садржај који смо направили за наш документ.
На следећој слици видећемо како изгледа тестни документ који имамо у окружењу за развој апликација:

Приметили смо да је КСМЛ то није ништа више од текста, тако да можемо радити једноставне рутине унутар наше апликације у ПХП за генерисање садржаја који одговара датотеци КСМЛ, међутим, ако видимо заглавље датотеке КСМЛ има исте ознаке као и почетне ознаке језика, односно па ако урадимо а Избацио једноставан садржај КСМЛ добићемо синтаксичку грешку.
Ово можемо лако исправити помоћу а заглавље и мењање МИМЕ тип би тект / кмл ово ће учинити тумача ПХП заглавље нашег садржаја више не сматрамо грешком КСМЛ које генеришемо. Погледајмо испод код који ћемо користити за креирање нашег малог примера:
 "Фигхт Цлуб", 'аутхор' => "Цхуцк Палахниук"), низ ('титле' => "Светски рат З", 'аутхор' => "Мак Броокс",)); фореацх ($ боокс ас $ боок) {ецхо "\ н"; ецхо "{$ боок ['титле']} \ н"; ецхо "{$ боок ['аутхор']} \ н"; ецхо "\ н \ н"; }?> вар13 -> 

Овде видимо како прво што направимо је да генеришемо заглавље документа са заглавље, ово ће нам омогућити да поставимо почетну ознаку нашег КСМЛ без подизања синтаксичких грешака у ПХП, онда стављамо изван кода нашу роот ознаку схема, у овом случају библиотека.
Затим направимо мали низ са неколико елемената које смо назвали књигама, овде је важно, иако је то нешто ручно, да можемо видети да бисмо то могли учинити База података на пример. Коначно, пролазимо кроз наш низ и штампамо, увек поштујући етикете тако да наше КСМЛ је добро формиран.
На крају, када ово покренемо на нашем тест серверу, у прегледачу ћемо добити нешто попут следећег:

ЕНЛАРГЕ

Побољшање обрадеИако горе наведено функционише прилично добро и веома је корисно, превише је склоно грешкама, па нам за помоћ имамо неколико библиотека које нам омогућавају креирање докумената КСМЛ од најчешћих дефиниција језика, за ово имамо библиотеку СУНЦЕ и књижара СимплеКСМЛ, обоје нам омогућава генерисање докумената КСМЛ као и чињење рашчланити од тога.
У следећем примеру ћемо узети датотеку КСМЛ то је у нашем директоријуму, како бисмо олакшали ствари можемо сачувати документ који је генерисан у претходном примеру и ми ћемо га позвати пхп_цреар_кмл.кмл, узимајући у обзир да изменом проширења више нећемо моћи да користимо ПХП за штампање заглавља, што је једноставан начин да видите КСМЛ пуно је притиснути ЦТРЛ + у и ми ћемо имати исто. Када добијемо тест датотеку, користићемо следећи код за то рашчланити из датотеке.
лоад ("екампле1.кмл"); процес ($ парсер-> доцументЕлемент); функцијски процес ($ ноде) {фореацх ($ ноде-> цхилдНодес као $ цхилд) {иф ($ цхилд-> нодеТипе == КСМЛ_ТЕКСТ_НОДЕ) {ецхо "

". $ цхилд-> нодеВалуе."

";} елсе иф ($ цхилд-> нодеТипе == КСМЛ_ЕЛЕМЕНТ_НОДЕ) {процесс ($ цхилд);}}}?> вар13 ->

У коду видимо да смо креирали објекат типа ДОМДоцумент, ово ће нам донети књижару СУНЦЕ да могу да тумаче КСМЛ, затим са методом лоад () учитавамо датотеку КСМЛ које имамо на свом путу и ​​тада зовемо функцију процес() ово је онај који ће нам омогућити да прођемо кроз учитани документ.
Коначно дефинишемо нашу функцију, овде пролазимо кроз сваки чвор и затим условљавамо ако је то елемент КСМЛ Зовемо функцију, иначе, ако је то текст, штампамо је, помоћу овога можемо добити садржај датотеке КСМЛ Нема проблема.
Једини недостатак ове методе и ове библиотеке је количина потребне меморије на серверу, па ако се ради о великој датотеци КСМЛ нашем серверу би било веома тешко да га обради.

Имамо и библиотеку СимплеКСМЛ да бисте могли да креирате и обрађујете датотеке КСМЛ, његова употреба је нешто слично библиотеци СУНЦЕМеђутим, он је ограниченији у смислу своје примене и веће сложености, иако је ово мало веће, па би наш код могао бити сложенији.
Занимљивост ове библиотеке је та што се помоћу наше креира објекат КСМЛ помоћу којих можемо директно приступити њиховим својствима и тако радити са њима. Погледајмо у следећем коду како можемо приступити ознакама квалификација сваке књиге коју имамо у својој КСМЛ тестова.
боок ас $ боок) {ецхо $ боок-> наслов. "
";}?> вар13 ->

Иако код може изгледати мало кратак, оно што ми радимо је да направимо објекат од учитане датотеке и можемо се петљати са за сваки сваки од његових чворова и на тај начин на једноставан начин приступа садржају своје ознаке. Са којим бисмо у прегледачу добили следеће:

Овим закључујемо овај водич, успешно смо креирали датотеку КСМЛ и научили смо два различита начина за читање ових датотека, важно је вежбати са сложенијим датотекама како бисмо били спремни и способни да применимо своје знање у апликацији у стварном животу.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave