PHP XML-i õpetus: looge, sõeluge, lugege näitega
Mis on XML?
XML on akronüüm sõnast Extensible Markup Language.
XML-i kasutatakse andmete struktureerimiseks, salvestamiseks ja ühest süsteemist teise transportimiseks.
XML on sarnane HTML-iga.
See kasutab avamise ja sulgemise silte.
Erinevalt HTML-ist võimaldab XML kasutajatel määrata oma sildid.
Mis on DOM?
DOM on dokumendiobjekti mudeli akronüüm.
See on platvormideülene ja keeleneutraalne standard, mis määratleb, kuidas andmetele juurde pääseda ja nendega manipuleerida;
- HTML
- XHTML
- XML
DOM XML-i kasutatakse XML-dokumentidele juurdepääsuks ja nendega manipuleerimiseks. See vaatab XML-dokumenti puuehitisena.
XML-i parserid
XML-parser on programm, mis tõlgib XML-dokumendi XML-dokumendi objektimudeli (DOM) objektiks.
Seejärel saab XML DOM-objekti manipuleerida kasutades Javaskript, Pythonja PHP jne.
Märksõna CDATA, mis on (parsed) märgiandmete akronüüm, kasutatakse XML-dokumendi sõelumisel erimärkide, näiteks „<,>” ignoreerimiseks.
Miks kasutada XML-i?
- Veebiteenused, nagu SOAP ja REST, kasutavad teabe vahetamiseks XML-vormingut. XML-i ja selle toimimise õppimine annab teile arendajana konkurentsieelise, kuna kaasaegsed rakendused kasutavad veebiteenuseid palju.
- XML-dokumente saab kasutada rakenduse konfiguratsiooniseadete salvestamiseks
- See võimaldab teil luua oma kohandatud silte, mis muudavad selle paindlikumaks.
XML-dokumendi näide
Oletame, et arendate rakendust, mis hangib veebiteenusest andmeid XML-vormingus.
Allpool on näide sellest, kuidas XML-dokument välja näeb.
<?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>
SIIN,
- “ ” määrab kasutatava xml-versiooni ja kodeeringu
- “ ” on juurelement.
- “ … ” on vastavalt halduse ja müügi alamelemendid.
Kuidas lugeda XML-i PHP-ga
Kirjutame nüüd koodi, mis loeb töötajate XML-dokumenti ja kuvab tulemused veebibrauseris. Indeks.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>'; } ?>
SIIN,
- "$xml = simplexml_load_file('töötajad.xml');" kasutab funktsiooni simplexml_load_file, et laadida faili nimi töötajad.xml ja määrata sisu massiivimuutujale $xml.
- "$list = $xml->rekord;" saab salvestussõlme sisu.
- “for ($i = 0; $i < count(…)…” on for-tsükkel, mis loeb numbrilist massiivi ja väljastab tulemused
- "$loend[$i]->attributes()->man_no;" loeb elemendi man_no atribuuti
- "$list[$i]->nimi;" loeb nime alamelemendi väärtust
- "$list[$i]->positsioon;" loeb positsiooni alamelemendi väärtust
Meie rakenduse testimine
Eeldades, et salvestasite faili index.php kausta phptus/xml, sirvige URL-i http://localhost/phptuts/xml/index.php
Kuidas luua PHP-ga XML-dokumenti
Nüüd vaatame, kuidas PHP abil XML-dokumenti luua.
Kasutame ülaltoodud näidet DOM-i puu diagrammil.
Järgmine kood kasutab XML-dokumendi loomiseks PHP-d, mis on sisseehitatud klassi DOMDocument.
<?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"; ?>
SIIN,
- "$dom = uus DOMDocument ();" loob DOMDocument klassi eksemplari.
- "$dom->encoding = 'utf-8';" määrab dokumendi kodeeringuks utf-8
- "$dom->xmlVersion = '1.0';" määrab versiooni numbri 1.0
- "$dom->formatOutput = tõene;" tagab, et väljund on hästi vormindatud
- "$root = $dom->createElement('Movies');" loob juursõlme nimega Filmid
- "$attr_movie_id = new DOMAttr('movie_id', '5467');" määrab sõlme Filmid atribuudi filmi ID
- “$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')” loob sõlme Filmid alamsõlme. ElementName määrab elemendi nime, nt Pealkiri. ElementValue määrab alamsõlme väärtuse, nt The Campaign.
- "$root->appendChild($movie_node);" lisab elemendid movie_node juursõlmele Movies
- "$dom-> appendChild($root);" lisab juursõlme XML-dokumendile.
- "$dom->save($xml_file_name);" salvestab XML-faili veebiserveri juurkataloogi.
- "kaja " . $xml_faili_nimi . ' on edukalt loodud';” loob lingi XML-failile.
Meie rakenduse testimine
Eeldades, et salvestasite faili create_movies_list kausta phptuts/xml, sirvige URL-i http://localhost/phptuts/xml/create_movies_list.php
Klõpsake lingil movies_list_xml
kokkuvõte
- XML on akronüüm sõnast Extensible Markup Language
- XML-i saab kasutada teabe vahetamiseks süsteemide vahel või rakenduse konfiguratsiooniseadete salvestamiseks jne.
- DOM on dokumendiobjekti mudeli akronüüm. XML DOM vaatab XML-dokumenti puustruktuurina
- XML-parser on programm, mis tõlgib XML-i XML-dokumendi DOM-i puustruktuuri sarnaseks dokumendiks.
- CDATA-d kasutatakse XML-dokumentide sõelumisel erimärkide ignoreerimiseks.
- PHP kasutab faili simplexml_load_file XML-dokumentide lugemiseks ja tulemuste tagastamiseks numbrimassiivina
- PHP DOMDocument klass XML-failide loomiseks.