PHP XML-veiledning: Opprett, analyser, les med eksempel
Hva er XML?
XML er forkortelsen for Extensible Markup Language.
XML brukes til å strukturere, lagre og transportere data fra ett system til et annet.
XML ligner på HTML.
Den bruker åpnings- og lukkeetiketter.
I motsetning til HTML lar XML brukere definere sine egne tagger.
Hva er DOM?
DOM er forkortelsen for Document Object Model.
Det er en tverrplattform- og språknøytral standard som definerer hvordan man får tilgang til og manipulerer data i;
- HTML
- XHTML
- XML
DOM XML brukes til å få tilgang til og manipulere XML-dokumenter. Den viser XML-dokumentet som en trestruktur.
XML-parsere
En XML-parser er et program som oversetter XML-dokumentet til et XML Document Object Model (DOM)-objekt.
XML DOM-objektet kan deretter manipuleres ved hjelp av JavaManus, Python, og PHP osv.
Nøkkelordet CDATA som er akronymet for (Unparsed) Character Data brukes til å ignorere spesialtegn som "<,>" når du analyserer et XML-dokument.
Hvorfor bruke XML?
- Webtjenester som SOAP og REST bruker XML-format for å utveksle informasjon. Å lære hva XML er og hvordan det fungerer vil gi deg konkurransefortrinn som utvikler siden moderne applikasjoner bruker mye webtjenester.
- XML-dokumenter kan brukes til å lagre konfigurasjonsinnstillinger for en applikasjon
- Den lar deg lage dine egne tilpassede tagger som gjør den mer fleksibel.
Eksempel på XML-dokument
La oss anta at du utvikler en applikasjon som henter data fra en webtjeneste i XML-format.
Nedenfor er et eksempel på hvordan XML-dokumentet ser ut.
<?xml version="1.0" encoding="utf-8"?> <employees status = "ok"> <record man_no = "101"> <name>Joe Paul</name> <position>CEO</position> </record> <record man_no = "102"> <name>Tasha Smith</name> <position>Finance Manager</position> </record> </employees>
HER,
- " ” spesifiserer xml-versjonen som skal brukes og kodingen
- " ” er rotelementet.
- " … ” er underelementene i henholdsvis administrasjon og salg.
Hvordan lese XML ved hjelp av PHP
La oss nå skrive koden som skal lese de ansattes XML-dokument og vise resultatene i en nettleser. index.php
<?php $xml = simplexml_load_file('employees.xml'); echo '<h2>Employees Listing</h2>'; $list = $xml->record; for ($i = 0; $i < count($list); $i++) { echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>'; echo 'Name: ' . $list[$i]->name . '<br>'; echo 'Position: ' . $list[$i]->position . '<br><br>'; } ?>
HER,
- "$xml = simplexml_load_file('ansatte.xml');" bruker simplexml_load_file-funksjonen til å laste inn filnavnet ansatte.xml og tilordne innholdet til matrisevariabelen $xml.
- "$list = $xml->record;" henter innholdet i postnoden.
- "for ($i = 0; $i < count(...)..." er for-løkken som leser den numeriske matrisen og sender ut resultatene
- "$list[$i]->attributes()->mann_no;" leser man_no-attributtet til elementet
- «$list[$i]->navn;» leser verdien av navnet underordnet element
- "$list[$i]->posisjon;" leser verdien av det underordnede posisjonselementet
Testing av søknaden vår
Forutsatt at du har lagret filen index.php i phptus/xml-mappen, bla til URL-en http://localhost/phptuts/xml/index.php
Hvordan lage et XML-dokument ved hjelp av PHP
Vi skal nå se på hvordan du lager et XML-dokument ved hjelp av PHP.
Vi vil bruke eksempelet ovenfor i DOM-trediagrammet.
Følgende kode bruker PHP innebygd i klassen DOMDocument for å lage et XML-dokument.
<?php $dom = new DOMDocument(); $dom->encoding = 'utf-8'; $dom->xmlVersion = '1.0'; $dom->formatOutput = true; $xml_file_name = 'movies_list.xml'; $root = $dom->createElement('Movies'); $movie_node = $dom->createElement('movie'); $attr_movie_id = new DOMAttr('movie_id', '5467'); $movie_node->setAttributeNode($attr_movie_id); $child_node_title = $dom->createElement('Title', 'The Campaign'); $movie_node->appendChild($child_node_title); $child_node_year = $dom->createElement('Year', 2012); $movie_node->appendChild($child_node_year); $child_node_genre = $dom->createElement('Genre', 'The Campaign'); $movie_node->appendChild($child_node_genre); $child_node_ratings = $dom->createElement('Ratings', 6.2); $movie_node->appendChild($child_node_ratings); $root->appendChild($movie_node); $dom->appendChild($root); $dom->save($xml_file_name); echo "$xml_file_name has been successfully created"; ?>
HER,
- "$dom = nytt DOMDocument();" oppretter en forekomst av DOMDocument-klassen.
- "$dom->encoding = 'utf-8';" setter dokumentkodingen til utf-8
- "$dom->xmlVersion = '1.0';" spesifiserer versjonsnummer 1.0
- "$dom->formatOutput = sant;" sikrer at utgangen er godt formatert
- "$root = $dom->createElement('Movies');" oppretter rotnoden med navnet Movies
- "$attr_movie_id = new DOMAttr('movie_id', '5467');" definerer film-id-attributtet til Movies-noden
- "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" oppretter den underordnede noden til Movies-noden. ElementName spesifiserer navnet på elementet, f.eks. Tittel. ElementValue setter den underordnede nodeverdien, f.eks. The Campaign.
- "$root->appendChild($movie_node);" legger til movie_node-elementene til rotnoden Movies
- "$dom->appendChild($root);" legger til rotnoden til XML-dokumentet.
- "$dom->save($xml_file_name);" lagrer XML-filen i rotkatalogen til webserveren.
- "ekko" . $xml_filnavn . ' har blitt opprettet';" oppretter koblingen til XML-filen.
Testing av søknaden vår
Forutsatt at du har lagret filen create_movies_list i phptuts/xml-mappen, bla til URL-en http://localhost/phptuts/xml/create_movies_list.php
Klikk på movies_list_xml-lenken
Sammendrag
- XML er forkortelsen for Extensible Markup Language
- XML kan brukes til å utveksle informasjon mellom systemer eller lagre konfigurasjonsinnstillinger for en applikasjon etc.
- DOM er forkortelsen for Document Object Model. XML DOM ser på XML-dokumentet som en trestruktur
- En XML Parser er et program som oversetter XML et XML-dokument til et DOM-trestrukturlignende dokument.
- CDATA brukes til å ignorere spesialtegn når du analyserer XML-dokumenter.
- PHP bruker simplexml_load_file til å lese XML-dokumenter og returnere resultatene som en numerisk matrise
- PHP DOMDocument-klasse for å lage XML-filer.