PHP XML oktatóanyag: létrehozás, elemzés, olvasás példával
⚡ Okos összefoglaló
A PHP és az XML együttműködve strukturálják, tárolják és cserélik az adatokat a rendszerek között. Ez a bemutató bemutatja az XML-t, a DOM-ot és az XML elemzőket, majd bemutatja, hogyan kell XML dokumentumot olvasni a SimpleXML segítségével, és hogyan lehet létrehozni egyet a DOMDocument osztállyal, és végül kitér arra, hogy mikor kell használni az egyes módszereket.

Mi az XML?
Az XML az Extensible Markup Language rövidítése.
Az XML-t az adatok strukturálására, tárolására és egyik rendszerből a másikba történő átvitelére használják.
Az XML hasonló a HTML-hez. Nyitó és záró címkéket használ. A HTML-lel ellentétben az XML lehetővé teszi a felhasználók számára a saját címkéik definiálását.
Mi az a DOM?
A DOM a Document Object Model rövidítése.
Ez egy platformfüggetlen és nyelvsemleges szabvány, amely meghatározza, hogyan lehet hozzáférni és manipulálni az adatokkal a következőkben:
- HTML
- XHTML
- XML
A DOM XML-t az XML dokumentumok eléréséhez és kezeléséhez használják. Azt megtekinti az XML dokumentumot mint egy fa szerkezet.
XML elemzők
Az XML-elemző egy olyan program, amely az XML-dokumentumot XML Document Object Model (DOM) objektummá alakítja.
Az XML DOM objektum ezután manipulálható a következővel: JavaForgatókönyv, Python, PHP és más nyelvek.
A CDATA kulcsszó, ami a (unparsed) Character Data ((unparsed) Karakteradatok) rövidítése, arra szolgál, hogy figyelmen kívül hagyjuk a speciális karaktereket, például a „<” és a „>” karaktereket egy XML dokumentum elemzésekor.
Miért érdemes XML-t használni?
- Az olyan webszolgáltatások, mint a SOAP és a REST, XML formátumot használnak az információcseréhez. Az XML mibenlétének és működésének elsajátítása versenyelőnyt biztosít fejlesztőként, mivel a modern alkalmazások nagymértékben használják a webszolgáltatásokat.
- Az XML dokumentumok használhatók egy alkalmazás konfigurációs beállításainak tárolására.
- Lehetővé teszi saját egyéni címkék létrehozását, ami rugalmasabbá teszi.
XML dokumentum példa
Tegyük fel, hogy fejlesztő vagyping egy olyan alkalmazás, amely XML formátumban fogad adatokat egy webszolgáltatásból.
Az alábbiakban egy példa látható arra, hogy hogyan néz ki az XML dokumentum.
<?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>
ITT,
- „ „meghatározza a használandó XML verziót és kódolást”
- " ” a gyökérelem.
- „ … A „” elemek a gyermekelemek, alkalmazotti rekordonként egy.
XML olvasása PHP segítségével
Írjuk meg most a kódot, amely beolvassa az alkalmazottak XML dokumentumát, és megjeleníti az eredményeket egy webböngészőben. 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>'; } ?>
ITT,
- A „$xml = simplexml_load_file('employees.xml');” a simplexml_load_file függvényt használja az employees.xml nevű fájl betöltéséhez, és a tartalmának az $xml változóhoz rendeléséhez.
- A „$list = $xml->record;” parancs lekéri a rekordcsomópontok tartalmát.
- A „for ($i = 0; $i < count(…)…” a for ciklus, amely beolvassa a tömböt és kiírja az eredményt
- "$list[$i]->attributes()->man_no;" beolvassa az elem man_no attribútumát
- "$list[$i]->name;" beolvassa a név gyermek elem értékét
- "$list[$i]->pozíció;" beolvassa a pozíció gyermek elem értékét
Az XML-olvasó tesztelése
Feltételezve, hogy az index.php fájlt a phptuts/xml mappába mentetted, keresd meg a URL http://localhost/phptuts/xml/index.php
Hogyan készítsünk XML dokumentumot PHP-vel
Most megnézzük, hogyan hozhat létre XML-dokumentumot PHP-val.
A következő kód a PHP beépített DOMDocument osztályát használja egy XML dokumentum létrehozásához.
<?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"; ?>
ITT,
- A „$dom = new DOMDocument();” függvény a DOMDocument osztály egy példányát hozza létre.
- "$dom->encoding = 'utf-8';" a dokumentum kódolását utf-8-ra állítja
- "$dom->xmlVersion = '1.0';" az 1.0 verziószámot adja meg
- "$dom->formatOutput = igaz;" biztosítja a kimenet megfelelő formázását
- "$root = $dom->createElement('Movies');" létrehozza a Movies nevű gyökércsomópontot
- „$attr_movie_id = new DOMAttr('movie_id', '5467');” a film csomópont movie_id attribútumát határozza meg.
- A „$dom->createElement('ElementName', 'ElementValue')” parancs egy gyermekcsomópontot hoz létre. Az ElementName az elem nevét adja meg, pl. Title. Az ElementValue beállítja a gyermekcsomópont értékét, pl. The Campaign.
- „$root->appendChild($movie_node);” hozzáfűzi a film csomópontot a Filmek gyökércsomóponthoz
- "$dom->appendChild($root);" hozzáfűzi a gyökér csomópontot az XML dokumentumhoz.
- "$dom->save($xml_file_name);" elmenti az XML fájlt a webszerver gyökérkönyvtárába.
- „echo “A(z) $xml_file_name létrehozása sikeresen megtörtént”;” hibaüzenetet jelenít meg.
XML tesztelése Creator
Feltételezve, hogy a create_movies_list.php fájlt a phptuts/xml mappába mentetted, keresd meg a URL http://localhost/phptuts/xml/create_movies_list.php
Nyisd meg a movies_list.xml fájlt.
SimpleXML vs. DOMDocument
A PHP két fő módszert kínál az XML használatára. A SimpleXML akkor a legjobb választás, ha főként adatokat kell olvasni, míg a DOMDocument finomabb vezérlést biztosít a dokumentumok létrehozásához és intenzív szerkesztéséhez. Az alábbi táblázat összehasonlítja ezeket.
| Aspect | SimpleXML | DOMDocument |
|---|---|---|
| Egyszerű használat | Nagyon egyszerű; a dokumentum beágyazott objektumként viselkedik | Részletesebb, csomópont-alapú API |
| A legjobb | Olvasás és könnyű szerkesztés | Dokumentumok létrehozása és összetett manipuláció |
| Hozzáférési stílus | $xml->rekord->név | createElement() és appendChild() |
| XPath-támogatás | Igen, a ->xpath() függvényen keresztül | Igen, a DOMXPath osztályon keresztül |
Gyakorlati szabály, hogy először a SimpleXML-t használjuk hírfolyamok és egyszerű fájlok olvasásához, és váltsunk a DOMDocumentre, amikor dokumentumokat kell létrehoznunk, csomópontokat beszúrnunk adott pozíciókba, vagy sémával szemben validálnunk.



