PHP XML vodič: Stvorite, analizirajte, čitajte s primjerom

⚡ Pametni sažetak

PHP i XML zajedno strukturiraju, pohranjuju i razmjenjuju podatke između sustava. Ovaj vodič objašnjava XML, DOM i XML parsere, zatim pokazuje kako čitati XML dokument pomoću SimpleXML-a i kako ga stvoriti pomoću klase DOMDocument, a završava s time kada koristiti svaki od njih.

  • 📄 Što je XML: XML je proširivi jezik za označavanje, format temeljen na oznakama koji vam omogućuje definiranje prilagođenih oznaka za strukturiranje i prijenos podataka.
  • ???? DOM: Objektni model dokumenta (Document Object Model) prikazuje XML ili HTML dokument kao stablo, tako da kod može navigirati i uređivati ​​čvorove.
  • 🔄 XML parseri: Parser pretvara XML dokument u DOM objekt koji PHP, JavaSkripta, odn Python može čitati i mijenjati.
  • ???? Čitanje XML-a: simplexml_load_file učitava datoteku u objekte, tako da zapisima pristupate sintaksom strelice poput $xml->record->name.
  • 🛠️ Izrada XML-a: Klasa DOMDocument gradi dokument čvor po čvor pomoću createElement i appendChild, a zatim save zapisuje datoteku.
  • ⚖️ SimpleXML u odnosu na DOM: SimpleXML se brzo čita, dok DOMDocument odgovara preciznom kreiranju i složenoj manipulaciji.
  • 🤖 AI pomoć: AI alati mogu generirati kod za parsiranje određene XML strukture i pretvarati između XML, JSON i PHP nizova.

PHP i XML

Što je XML?

XML je akronim za Extensible Markup Language.

XML se koristi za strukturiranje, pohranu i prijenos podataka iz jednog sustava u drugi.

XML je sličan HTML-u. Koristi početne i završne oznake. Za razliku od HTML-a, XML korisnicima omogućuje definiranje vlastitih oznaka.

Što je DOM?

DOM je akronim za Document Object Model.

To je višeplatformski i jezično neutralan standard koji definira kako pristupiti i manipulirati podacima u:

  • HTML
  • XHTML
  • XML

DOM XML se koristi za pristup i manipuliranje XML dokumentima. To pregledava XML dokument kao struktura stabla.

XML parseri

XML parser je program koji prevodi XML dokument u XML objekt modela objekta dokumenta (DOM).

XML DOM objekt se zatim može manipulirati pomoću Javaskripta, Python, PHP i drugi jezici.

Ključna riječ CDATA, što je akronim za (unparsed) Character Data (neraščlanjeni) znakovni podaci), koristi se za ignoriranje posebnih znakova poput "<" i ">" prilikom parsiranja XML dokumenta.

Zašto koristiti XML?

  • Web servisi poput SOAP-a i REST-a koriste XML format za razmjenu informacija. Učenje što je XML i kako funkcionira daje vam konkurentsku prednost kao programeru, budući da moderne aplikacije intenzivno koriste web servise.
  • XML dokumenti mogu se koristiti za pohranjivanje konfiguracijskih postavki aplikacije.
  • Omogućuje vam stvaranje vlastitih prilagođenih oznaka, što ga čini fleksibilnijim.

Primjer XML dokumenta

Pretpostavimo da ste razvijeniping aplikacija koja dobiva podatke s web servisa u XML formatu.

Ispod je primjer kako izgleda XML dokument.

<?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>

OVDJE,

  • " " određuje XML verziju i kodiranje koje će se koristiti
  • “ ” je korijenski element.
  • " ... ” su podređeni elementi, jedan po zapisu zaposlenika.

Kako čitati XML koristeći PHP

Napišimo sada kod koji će čitati XML dokument zaposlenika i prikazivati ​​rezultate u web pregledniku. 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>';
}
?>

OVDJE,

  • „$xml = simplexml_load_file('employees.xml');” koristi funkciju simplexml_load_file za učitavanje datoteke pod nazivom employees.xml i dodjeljivanje sadržaja varijabli $xml.
  • „$list = $xml->record;“ dohvaća sadržaj čvorova zapisa.
  • „for ($i = 0; $i < count(…)…“ je for petlja koja čita niz i ispisuje rezultate
  • “$list[$i]->attributes()->man_no;” čita man_no atribut elementa
  • “$list[$i]->name;” čita vrijednost podređenog elementa name
  • “$list[$i]->position;” čita vrijednost podređenog elementa position

Testiranje XML čitača

Pod pretpostavkom da ste datoteku index.php spremili u mapu phptuts/xml, idite do URL http://localhost/phptuts/xml/index.php

Čitajte XML koristeći PHP

Kako stvoriti XML dokument koristeći PHP

Sada ćemo pogledati kako stvoriti XML dokument koristeći PHP.

Sljedeći kod koristi ugrađenu PHP klasu DOMDocument za izradu XML dokumenta.

<?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', 'Comedy');

$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";
?>

OVDJE,

  • „$dom = new DOMDocument();“ stvara instancu klase DOMDocument.
  • “$dom->encoding = 'utf-8';” postavlja kodiranje dokumenta na utf-8
  • “$dom->xmlVersion = '1.0';” navodi broj verzije 1.0
  • “$dom->formatOutput = true;” osigurava da je izlaz dobro formatiran
  • “$root = $dom->createElement('Filmovi');” stvara korijenski čvor pod nazivom Filmovi
  • „$attr_movie_id = new DOMAttr('movie_id', '5467');” definira atribut movie_id čvora filma
  • „$dom->createElement('NazivElementa', 'VrijednostElementa')” stvara podređeni čvor. NazivElementa određuje naziv elementa, npr. Naslov. VrijednostElementa postavlja vrijednost podređenog čvora, npr. Kampanja.
  • „$root->appendChild($movie_node);” dodaje čvor filma korijenskom čvoru Filmovi
  • “$dom->appendChild($root);” dodaje korijenski čvor XML dokumentu.
  • “$dom->save($xml_file_name);” sprema XML datoteku u korijenski direktorij web poslužitelja.
  • „echo „$xml_file_name je uspješno kreirana“;“ prikazuje poruku o uspjehu.

Testiranje XML-a Creator

Pod pretpostavkom da ste datoteku create_movies_list.php spremili u mapu phptuts/xml, idite do URL http://localhost/phptuts/xml/create_movies_list.php

Stvorite XML dokument koristeći PHP

Otvorite datoteku movies_list.xml.

Stvorite XML dokument koristeći PHP

SimpleXML u odnosu na DOMDocument

PHP nudi dva glavna načina rada s XML-om. SimpleXML je najbolji kada uglavnom trebate čitati podatke, dok DOMDocument daje finiju kontrolu za izradu i intenzivno uređivanje dokumenata. Tablica u nastavku ih uspoređuje.

Aspekt SimpleXML DOM dokument
Jednostavnost korištenja Vrlo jednostavno; dokument se ponaša kao ugniježđeni objekti Opširniji API temeljen na čvorovima
Najbolje za Čitanje i lagano uređivanje Izrada dokumenata i složena manipulacija
Stil pristupa $xml->zapis->naziv createElement() i appendChild()
XPath podrška Da, putem ->xpath() Da, putem klase DOMXPath

Praktično pravilo je prvo posegnuti za SimpleXML-om za čitanje feedova i jednostavnih datoteka, a zatim se prebaciti na DOMDocument kada trebate stvarati dokumente, umetati čvorove na određene pozicije ili validirati u odnosu na shemu.

Pitanja i odgovori

Oba pohranjuju strukturirane podatke, ali XML koristi oznake i podržava atribute, komentare i sheme, dok je JSON lakši i izravno se mapira na nizove i objekte. JSON je uobičajen za API-je; XML odgovara dokumentima i konfiguraciji.

Učitajte datoteku pomoću SimpleXML-a ili DOMDocumenta, promijenite vrijednosti ili atribute čvora, a zatim je ponovno zapišite. Sa SimpleXML-om uredite svojstvo i pozovite asXML('file.xml'); s DOMDocumentom uredite čvor i pozovite save().

XPath je jezik upita za odabir čvorova u XML dokumentu. U PHP-u, pozovite $xml->xpath('//record/name') sa SimpleXML-om ili koristite klasu DOMXPath za dohvaćanje odgovarajućih elemenata bez loo-a.ping kroz cijelo stablo.

Da. Umjetna inteligencija može generirati kod pomoću simplexml_load_string, json_encode i json_decode za pretvaranje između formata i označavanje podataka koji se ne mapiraju čisto, kao što su XML atributi ili miješani sadržaj. Provjerite rezultat.

Da. Zalijepite uzorak svog XML-a, a umjetna inteligencija može stvoriti SimpleXML ili DOMDocument kod koji čita točne elemente i atribute koji su vam potrebni, uključujući petlje za ponovljene zapise. Testirajte ga na stvarnim datotekama.

Sažmite ovu objavu uz: