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

Loe XML-i PHP-ga

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

Looge PHP-ga XML-dokument

Klõpsake lingil movies_list_xml

Looge PHP-ga XML-dokument

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.