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 egy Extensible Markup Language, egy címkealapú formátum, amely lehetővé teszi egyéni címkék definiálását az adatok strukturálásához és szállításához.
  • ???? A DOM: A Dokumentumobjektum-modell (Document Object Model) egy XML vagy HTML dokumentumot fastruktúrának tekint, így a kód navigálhat a csomópontok között és szerkesztheti azokat.
  • 🔄 XML elemzők: Egy elemző egy XML dokumentumot DOM objektummá alakít, amelyet a PHP, JavaScript, ill Python olvashatja és módosíthatja.
  • ???? XML olvasása: A simplexml_load_file függvény betölt egy fájlt az objektumokba, így a rekordokhoz nyílnyelvvel, például $xml->record->name használatával férhetsz hozzá.
  • 🇧🇷 XML létrehozása: A DOMDocument osztály csomópontról csomópontra építi fel a dokumentumot a createElement és az appendChild metódusok segítségével, majd a save parancs kiírja a fájlt.
  • 🇧🇷 SimpleXML vs. DOM: A SimpleXML gyorsan olvasható, míg a DOMDocument a precíz létrehozást és az összetett manipulációt teszi lehetővé.
  • 🤖 AI Assist: A mesterséges intelligencia eszközei képesek elemzési kódot generálni egy adott XML struktúrához, és konvertálni XML, JSON és PHP tömbök között.

PHP és XML

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

XML olvasása PHP segítségével

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

Hozzon létre egy XML dokumentumot PHP segítségével

Nyisd meg a movies_list.xml fájlt.

Hozzon létre egy XML dokumentumot PHP segítségével

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.

GYIK

Mindkettő strukturált adatokat tárol, de az XML címkéket használ, és támogatja az attribútumokat, megjegyzéseket és sémákat, míg a JSON könnyebb, és közvetlenül tömbökre és objektumokra képezi le. A JSON gyakori az API-knál; az XML dokumentumokhoz és konfigurációhoz illik.

Töltse be a fájlt SimpleXML vagy DOMDocument segítségével, módosítsa a csomópont értékeit vagy attribútumait, majd írja vissza. SimpleXML esetén szerkessze a tulajdonságot, és hívja meg az asXML('file.xml') függvényt; DOMDocument esetén szerkessze a csomópontot, és hívja meg a save() függvényt.

Az XPath egy lekérdezőnyelv csomópontok kiválasztására XML dokumentumokban. PHP-ben a $xml->xpath('//rekord/név') függvényt SimpleXML-lel hívhatjuk meg, vagy a DOMXPath osztályt használhatjuk a megfelelő elemek lekéréséhez.ping az egész fán keresztül.

Igen. A mesterséges intelligencia képes kódot generálni a simplexml_load_string, a json_encode és a json_decode használatával a formátumok közötti konverzióhoz, és megjelölni a nem tisztán leképezett adatokat, például az XML attribútumokat vagy a vegyes tartalmat. Ellenőrizze az eredményt.

Igen. Illessz be egy mintát az XML-ből, és a mesterséges intelligencia képes létrehozni egy SimpleXML vagy DOMDocument kódot, amely pontosan a szükséges elemeket és attribútumokat olvassa be, beleértve az ismétlődő rekordokhoz tartozó ciklusokat is. Teszteld valódi fájlokkal.

Foglald össze ezt a bejegyzést a következőképpen: