Bygga XML -dokument med PHP

Innehållsförteckning
Innan vi går in på den tekniska delen av hur vi skapar dessa dokument måste vi först förstå vad en fil är. XML, och vad är dess verkliga och aktuella tillämpningar, på detta sätt kommer vi att kunna uppskatta mycket mer den kunskap som vi kan förvärva i detta avsnitt.
Vad är en XML -fil?Säkert vet många av er redan att det är en fil XMLMen för dem som inte vet det eller det är första gången de ser denna term, kommer vi att förklara dess koncept lite. XML är ett markerings- och märkningsspråk som liknar mycket HTML som gör att vi kan organisera innehållet i ett dokument. Den består av etiketter och enheter, och vi måste följa flera regler när vi skapar den.
Du kommer säkert att tro att jag beskriver HTML också, och varför vi inte använder det senare istället för att skapa ett nytt språk, för helt enkelt för att XML det är striktare och mer anpassningsbart, varför det är mycket mer flexibelt att använda och lättare att förstå. Etiketterna på HTML är redan definierade i din standard, istället a XML etiketter skapas av oss enligt språkreglerna.
I början av handledningen nämnde vi en av de mest kända applikationerna för XML och det är att organisera innehållet så att det kan konsumeras av applikationerna, detta är vad som i grunden krävs. När du organiserar ett dokument XML vi kan göra det som kallas a analysera, vilket inte är annat än att läsa filen och om den följer standarden kommer vi att kunna veta vad dess struktur är och därmed bearbeta innehållet i vårt program.
I ett verkligt sammanhang är XML kan användas för att överföra data via en webb-service eller för att återställa och importera data i en Databas. Som vi kan se är det ett portabilitetsformat, det vill säga att överföra data från en plattform till en annan. Det fungerar också inom samma plattform, till exempel en konfigurationsfil där varje etikett motsvarar parametrar som vår applikation läser för att generera adekvat beteende.
Fast under de senaste åren har formatet JSON har vunnit mycket popularitet i webbmiljöer och har förmodligen blivit allt populärare XML, i verkligheten är det inte så eftersom var och en har sitt utrymme, fördelen med JSON är att den är infödd i Javascript och med de nya sätten att arbeta med detta språk är konvertering praktiskt taget onödig.
Men i andra miljöer som skrivbordsapplikationer, andra serverspråk än Javascript och applikationer som har funnits på marknaden länge, XML det är ett giltigt och allmänt använt alternativ.
Som alltid beror allt på våra behov, det kan vi inte säga heller JSON varken XML de är dåliga, var och en har helt enkelt sin omfattning och sitt syfte, så om vi vill använda XML och någon säger till oss att vi är föråldrade, vet bara att det för våra behov är helt giltigt.
Som vi redan har förklarat en fil XML Den består av taggar, men för att kunna tolkas korrekt måste den ha en rubrik och sedan börja med innehållet. Rubriken är känd som DTD eller Dokumenttypdefinition, som kan översättas som typdefinition av dokumentet och sedan är innehållet schema eller schema på spanska.
Vad gör DTD?De DTD är den som kommer att ge informationen till parser om vilken typ av XML är och inom schema Det är dit innehållet som vi har gjort för vårt dokument kommer att gå.
I följande bild kommer vi att se hur ett testdokument som vi har i vår applikationsutvecklingsmiljö ser ut:

Vi har märkt att XML det är inget mer än text, så vi kan göra enkla rutiner i vår applikation i PHP för att generera innehållet som motsvarar en fil XMLom vi ser filhuvudet XML har samma taggar som språkets öppningstaggar, det vill säga så om vi gör en kastade ut enkelt innehåll i XML vi kommer att få ett syntaxfel.
Vi kan enkelt korrigera detta med hjälp av en rubrik och ändra MIME -typ med text / xml detta kommer att göra tolk PHP betrakta inte längre rubriken till vårt innehåll som ett fel XML som vi genererar. Låt oss se nedan koden som vi ska använda för att skapa vårt lilla exempel:
 "Fight Club", 'author' => "Chuck Palahniuk"), array ('title' => "World War Z", 'author' => "Max Brooks",)); foreach ($ böcker som $ bok) {echo "\ n"; eko "{$ book ['title']} \ n"; eko "{$ book ['author']} \ n"; eko "\ n \ n"; }?> var13 -> 

Vi ser här hur det första vi gör är att generera dokumentets rubrik med rubrik, detta gör att vi kan placera starttaggen för vår XML utan att höja syntaxfel i PHP, sedan lägger vi utanför koden vår rottagg på schema, i det här fallet bibliotek.
Därefter gör vi en liten uppsättning med flera element som vi har kallat böcker, det viktiga här trots att det är något manuellt är att vi kan se att vi skulle kunna göra detta med ett resultat av Databas till exempel. Slutligen går vi igenom vårt utbud och skriver ut och respekterar alltid etiketterna så att våra XML är välformad.
I slutändan när vi kör detta på vår testserver får vi något liknande följande i webbläsaren:

FÖRSTORA

Förbättra bearbetningenÄven om ovanstående fungerar ganska bra och är mycket användbart, är det för benäget för fel, så för vår hjälp har vi flera bibliotek som gör att vi kan skapa dokument XML från de vanligaste definitionerna av språket, för detta har vi biblioteket SOL och bokhandeln SimpleXML, båda gör att vi kan skapa dokument XML liksom att göra analysera därav.
I följande exempel kommer vi att ta en fil XML som finns i vår katalog, för att göra det enklare kan vi spara dokumentet som genererades i föregående exempel och vi kommer att kalla det php_crear_xml.xml, med tanke på att genom att ändra tillägget kommer vi inte längre att kunna använda PHP för att skriva ut rubriken, ett enkelt sätt att se XML full är att trycka CTRL + u och vi kommer att ha samma. När vi har vår testfil kommer vi att använda följande kod för att göra analysera från filen.
load ("exempel1.xml"); process ($ parser-> documentElement); funktionsprocess ($ node) {foreach ($ node-> childNodes som $ child) {if ($ child-> nodeType == XML_TEXT_NODE) ​​{echo "

". $ child-> nodeValue."

";} annars om ($ child-> nodeType == XML_ELEMENT_NODE) ​​{process ($ child);}}}?> var13 ->

I koden ser vi att vi har skapat ett objekt av typen DOMDokument, detta kommer att ge oss bokhandeln SOL för att kunna tolka XML, sedan med metoden belastning () vi laddar filen XML som vi har i vår rutt och sedan kallar vi funktionen bearbeta() det här är det som gör att vi kan gå igenom det laddade dokumentet.
Slutligen definierar vi vår funktion, här går vi igenom varje nod och sedan villkorar vi om det är ett element XML Vi kallar funktionen, annars om det är text skriver vi ut det, med detta kan vi få innehållet i XML Inga problem.
Den enda defekten i denna metod och detta bibliotek är mängden minne som krävs på servern, så om det var en stor fil XML det skulle vara mycket svårt för vår server att bearbeta den.

Vi har också biblioteket SimpleXML för att kunna skapa och bearbeta filerna XML, dess användning är något som liknar biblioteket SOLDet är dock mer begränsat när det gäller dess tillämpning och större komplexitet, även om det är lite större, så vår kod kan vara mer komplex.
Det intressanta med detta bibliotek är att ett objekt skapas med vårt XML med vilka vi direkt kan komma åt deras fastigheter och därmed arbeta med dem. Låt oss se i följande kod hur vi kan komma åt etiketterna kompetens av varje bok vi har i vår XML av tester.
bok som $ bok) {echo $ bok-> titel. "
";}?> var13 ->

Även om koden kan se lite kort ut, är det vi gör att skapa ett objekt från den laddade filen och vi kan loopa med en för varje var och en av dess noder och därmed komma åt innehållet i etiketten på ett enkelt sätt. Med vilket vi skulle få följande i webbläsaren:

Med detta avslutar vi denna handledning, vi har framgångsrikt skapat en fil XML och vi har lärt oss två olika sätt att kunna läsa dessa filer, det är viktigt att träna med mer komplexa filer så att vi är redo och kan använda vår kunskap i en verklig applikation.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave