Indholdsfortegnelse
Inden vi dykker ned i den tekniske del af, hvordan vi opretter disse dokumenter, skal vi først forstå, hvad en fil er. XML, og hvad er dens virkelige og aktuelle applikationer, på denne måde vil vi være i stand til at værdsætte meget mere den viden, vi kan erhverve i dette afsnit.Hvad er en XML -fil?Mange af jer ved sikkert allerede, at det er en fil XMLFor dem, der ikke ved det, eller det er første gang, de ser dette udtryk, vil vi forklare dets koncept lidt. XML er et markup- og tagging -sprog, der meget ligner HTML der giver os mulighed for at organisere indholdet i et dokument. Det består af etiketter og enheder, og vi skal følge flere regler, når vi genererer det.
Du vil helt sikkert tro, at jeg beskriver HTML også, og hvorfor vi ikke bruger sidstnævnte i stedet for at oprette et nyt sprog, fordi simpelthen fordi XML den er strengere og mere tilpasselig, og derfor er den meget mere fleksibel at bruge og lettere at forstå. Etiketterne på HTML er allerede defineret i din standard, i stedet for a XML etiketter er skabt af os under sprogets regler.
I begyndelsen af selvstudiet nævnte vi en af de mest kendte applikationer af XML og det er at organisere indholdet, så det kan forbruges af applikationerne, det er grundlæggende det, der kræves. Når du organiserer et dokument XML vi kan gøre det, der kaldes a analyse, hvilket ikke er andet end at læse filen, og hvis den følger standarden, vil vi være i stand til at vide, hvad dens struktur er og dermed behandle det nævnte indhold i vores program.
I en reel kontekst er XML kan bruges til at overføre data via en webservice eller for at gendanne og importere data i en Database. Som vi kan se, er det et portabilitetsformat, det vil sige at transportere data fra en platform til en anden. Det fungerer også inden for den samme platform, f.eks. En konfigurationsfil, hvor hver etiket svarer til parametre, som vores applikation læser for at generere passende adfærd.
Selvom formatet i de sidste par år JSON har vundet stor popularitet i webmiljøer, og har uden tvivl været ved at vinde popularitet over XML, i virkeligheden er det ikke sådan, da hver enkelt har sin plads, fordelen ved JSON er, at det er hjemmehørende i Javascript og med de nye måder at arbejde med dette sprog på er konvertering praktisk talt unødvendig.
Men i andre miljøer som f.eks. Desktop -applikationer, andre serversprog end Javascript og applikationer, der har været på markedet i lang tid, XML det er en gyldig og meget udbredt mulighed.
Som altid afhænger alt af vores behov, det kan vi heller ikke sige JSON ingen af dem XML de er dårlige, hver enkelt har simpelthen sit omfang og sit formål, så hvis vi vil bruge XML og nogen fortæller os, at vi er forældede, bare ved, at det er fuldstændigt gyldigt for vores behov.
Som vi allerede har forklaret en fil XML Det består af tags, men for at blive fortolket korrekt skal det have en overskrift og derefter starte med indholdet. Overskriften er kendt som DTD eller Dokumenttype definition, som kunne oversættes som typedefinition af dokumentet, og derefter er indholdet det skema eller ordning på spansk.
Hvad gør DTD?Det DTD er den, der vil give oplysningerne til parser om hvilken slags XML er og inden for skema Det er her, det indhold, vi har lavet til vores dokument, vil gå.
I det følgende billede vil vi se, hvordan et testdokument, vi har i vores applikationsudviklingsmiljø, ser ud:
Vi kan let rette dette ved hjælp af en header og ændre MIME -type med tekst / xml vil dette gøre tolken PHP betragter ikke længere overskriften på vores indhold som en fejl XML som vi genererer. Lad os se nedenfor den kode, som vi skal bruge til at oprette vores lille eksempel:
"Fight Club", 'author' => "Chuck Palahniuk"), array ('title' => "World War Z", 'author' => "Max Brooks",)); foreach ($ bøger som $ bog) {echo "\ n"; ekko "{$ book ['title']} \ n"; ekko "{$ book ['author']} \ n"; ekko "\ n \ n"; }?> var13 ->
Vi ser her, hvordan det første, vi gør, er at generere dokumentets overskrift med header, vil dette give os mulighed for at placere startmærket på vores XML uden at hæve syntaksfejl i PHP, så placerer vi vores kode uden for koden for skema, i dette tilfælde bibliotek.
Dernæst laver vi et lille array med flere elementer, som vi har kaldt bøger, det vigtige her, selvom det er noget manuelt, er, at vi kan se, at vi kunne gøre dette med et resultat af Database for eksempel. Endelig går vi igennem vores array og udskriver og respekterer altid etiketterne, så vores XML er velformet.
Til sidst når vi kører dette på vores testserver, får vi noget i retning af følgende i browseren:
FORSTØRRE
I det følgende eksempel tager vi en fil XML det er i vores bibliotek, for at gøre tingene lettere kan vi gemme det dokument, der blev genereret i det foregående eksempel, og vi vil kalde det php_crear_xml.xml, under hensyntagen til, at ved at ændre udvidelsen vil vi ikke længere kunne bruge PHP til at udskrive overskriften, en nem måde at se XML fuld er at trykke på CTRL + u og vi får det samme. Når vi har vores testfil, vil vi bruge følgende kode til at gøre parse fra filen.
load ("eksempel1.xml"); proces ($ parser-> documentElement); funktionsproces ($ node) {foreach ($ node-> childNodes som $ child) {if ($ child-> nodeType == XML_TEXT_NODE) {echo "". $ child-> nodeValue."
";} ellers hvis ($ child-> nodeType == XML_ELEMENT_NODE) {proces ($ child);}}}?> var13 ->
I koden ser vi, at vi har skabt et objekt af typen DOMDokument, dette vil bringe os boghandlen SOL for at kunne fortolke XML, derefter med metoden belastning () vi indlæser filen XML som vi har i vores rute, og så kalder vi funktionen behandle() dette er den, der giver os mulighed for at gå gennem det indlæste dokument.
Endelig definerer vi vores funktion, her går vi gennem hver knude og derefter gør vi en betinget, hvis det er et element XML Vi kalder funktionen, ellers hvis det er tekst, udskriver vi den, med dette kan vi få indholdet af XML Intet problem.
Den eneste fejl ved denne metode og dette bibliotek er mængden af hukommelse, der kræves på serveren, så hvis det var en stor fil XML det ville være meget svært for vores server at behandle det.
Det interessante ved dette bibliotek er, at et objekt er skabt med vores XML hvormed vi kan få direkte adgang til deres ejendomme og dermed arbejde med dem. Lad os se i følgende kode, hvordan vi kan få adgang til etiketterne kvalifikation af hver bog, vi har i vores XML af test.
bog som $ bog) {echo $ book-> title. "
";}?> var13 ->
Selvom koden kan se lidt kort ud, er det, vi gør, at oprette et objekt fra den indlæste fil, og vi kan sløjfe med en for hver hver af dens noder og dermed få adgang til indholdet af sin etiket på en enkel måde. Med hvilket vi ville få følgende i browseren: