PHP XML -opetusohjelma: Luo, jäsennä, lue esimerkin avulla

⚡ Älykäs yhteenveto

PHP ja XML toimivat yhdessä tiedon jäsentämiseksi, tallentamiseksi ja vaihtamiseksi järjestelmien välillä. Tämä ohje selittää XML:n, DOM:n ja XML-jäsentimet ja näyttää sitten, miten XML-dokumenttia luetaan SimpleXML:llä ja miten sellainen luodaan DOMDocument-luokan avulla, sekä milloin kutakin käytetään.

  • 📄 Mikä on XML: XML on Extensible Markup Language, tagipohjainen muoto, jonka avulla voit määrittää mukautettuja tageja datan jäsentämistä ja siirtämistä varten.
  • 🌳 DOM: Document Object Model tarkastelee XML- tai HTML-dokumenttia puuna, joten koodi voi navigoida ja muokata solmuja.
  • 🔄 XML-jäsentimet: Jäsennin muuntaa XML-dokumentin DOM-objektiksi, jota PHP JavaKäsikirjoitus tai Python voi lukea ja muuttaa.
  • ???? XML:n lukeminen: simplexml_load_file lataa tiedoston objekteihin, joten voit käyttää tietueita nuolisyntaksilla, kuten $xml->record->name.
  • 🛠️ XML:n luominen: DOMDocument-luokka rakentaa dokumentin solmu solmulta createElement- ja appendChild-metodeilla ja tallentaa sitten tiedoston.
  • 🇧🇷 SimpleXML vs. DOM: SimpleXML on nopea lukea, kun taas DOMDocument sopii tarkkaan luontiin ja monimutkaiseen käsittelyyn.
  • 🤖 AI Assist: Tekoälytyökalut voivat luoda jäsennyskoodia tietylle XML-rakenteelle ja muuntaa XML-, JSON- ja PHP-taulukoiden välillä.

PHP ja XML

Mikä on XML?

XML on lyhenne sanoista Extensible Markup Language.

XML:ää käytetään tiedon jäsentämiseen, tallentamiseen ja siirtämiseen järjestelmästä toiseen.

XML on samankaltainen kuin HTML. Se käyttää avaus- ja lopputageja. Toisin kuin HTML, XML antaa käyttäjien määritellä omat taginsa.

Mikä on DOM?

DOM on lyhenne sanoista Document Object Model.

Se on alustojen välinen ja kielineutraali standardi, joka määrittelee, miten dataa voi käyttää ja käsitellä seuraavissa tilanteissa:

  • HTML
  • XHTML
  • XML

DOM XML:ää käytetään XML-dokumenttien avaamiseen ja käsittelemiseen. Se näyttää XML-dokumentin puurakenteena.

XML-jäsennykset

XML-jäsennin on ohjelma, joka muuntaa XML-dokumentin XML Document Object Model (DOM) -objektiksi.

XML DOM -objektia voidaan sitten käsitellä käyttämällä Javakäsikirjoitus, Python, PHP ja muut kielet.

Avainsanaa CDATA, joka on lyhenne sanoista (unparsed) Character Data, käytetään jättämään huomiotta erikoismerkit, kuten "<" ja ">", XML-dokumenttia jäsennettäessä.

Miksi käyttää XML:ää?

  • Verkkopalvelut, kuten SOAP ja REST, käyttävät XML-muotoa tiedonvaihtoon. XML:n ja sen toiminnan oppiminen antaa sinulle kilpailuedun kehittäjänä, koska nykyaikaiset sovellukset hyödyntävät paljon verkkopalveluita.
  • XML-dokumentteja voidaan käyttää sovelluksen määritysasetusten tallentamiseen.
  • Sen avulla voit luoda omia mukautettuja tunnisteita, mikä tekee siitä joustavamman.

Esimerkki XML-asiakirjasta

Oletetaan, että olet kehittynytping sovellus, joka hakee dataa verkkopalvelusta XML-muodossa.

Alla on esimerkki siitä, miltä XML-dokumentti näyttää.

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

TÄSSÄ,

  • ” ” määrittää käytettävän XML-version ja koodauksen
  • " ” on juurielementti.
  • ” … ” ovat alielementtejä, yksi työntekijätietuetta kohden.

Kuinka lukea XML:ää PHP:llä

Kirjoitetaan nyt koodi, joka lukee työntekijän XML-dokumentin ja näyttää tulokset verkkoselaimessa. 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>';
}
?>

TÄSSÄ,

  • ”$xml = simplexml_load_file('employees.xml');” lataa tiedoston employees.xml simplexml_load_file-funktion avulla ja sijoittaa sen sisällön muuttujaan $xml.
  • “$list = $xml->record;” hakee tietuenosoodujen sisällön.
  • ”for ($i = 0; $i < count(…)…” on for-silmukka, joka lukee taulukon ja näyttää tulokset
  • "$list[$i]->attributes()->man_no;" lukee elementin man_no-attribuutin
  • "$list[$i]->nimi;" lukee nimen lapsielementin arvon
  • "$list[$i]->position;" lukee sijainnin lapsielementin arvon

XML-lukijan testaaminen

Olettaen, että tallensit tiedoston index.php phptuts/xml-kansioon, selaa kohtaan URL http://localhost/phptuts/xml/index.php

Lue XML:ää PHP:llä

Kuinka luoda XML-dokumentti PHP:llä

Katsomme nyt, kuinka luodaan XML-dokumentti PHP:llä.

Seuraava koodi käyttää PHP:n sisäänrakennettua DOMDocument-luokkaa XML-dokumentin luomiseen.

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

TÄSSÄ,

  • ”$dom = new DOMDocument();” luo DOMDocument-luokan instanssin.
  • "$dom->encoding = 'utf-8';" asettaa asiakirjan koodaukseksi utf-8
  • "$dom->xmlVersion = '1.0';" määrittää versionumeron 1.0
  • "$dom->formatOutput = tosi;" varmistaa, että tuloste on muotoiltu hyvin
  • "$root = $dom->createElement('Movies');" luo juurisolmun nimeltä Elokuvat
  • ”$attr_movie_id = new DOMAttr('movie_id', '5467');” määrittää elokuvasolmun movie_id-attribuutin
  • ”$dom->createElement('ElementName', 'ElementValue')” luo lapsisolmun. ElementName määrittää elementin nimen, esim. Title. ElementValue asettaa lapsisolmun arvon, esim. The Campaign.
  • “$root->appendChild($movie_node);” liittää elokuvasolmun juurisolmuun Elokuvat
  • "$dom->appendChild($root);" liittää juurisolmun XML-dokumenttiin.
  • "$dom->tallenna($xml_tiedoston_nimi);" tallentaa XML-tiedoston verkkopalvelimen juurihakemistoon.
  • “echo “$xml_file_name on luotu onnistuneesti”;” näyttää onnistumisviestin.

XML:n testaaminen Creator

Olettaen, että tallensit tiedoston create_movies_list.php phptuts/xml-kansioon, selaa kohtaan URL http://localhost/phptuts/xml/create_movies_list.php

Luo XML-dokumentti PHP:llä

Avaa movies_list.xml-tiedosto.

Luo XML-dokumentti PHP:llä

SimpleXML vs. DOMDocument

PHP tarjoaa kaksi päätapaa työskennellä XML:n kanssa. SimpleXML on paras vaihtoehto, kun pääasiassa tarvitsee lukea dataa, kun taas DOMDocument tarjoaa tarkemman hallinnan dokumenttien rakentamiseen ja laajaan muokkaamiseen. Alla oleva taulukko vertailee niitä.

Aspect SimpleXML DOMDocument
Helppokäyttöisyys Hyvin yksinkertainen; dokumentti käyttäytyy kuin sisäkkäiset objektit Runsaslukuisempi, solmupohjainen API
Parasta Lukeminen ja kevyt editointi Asiakirjojen luominen ja monimutkainen käsittely
Access-tyyli $xml->tietue->nimi createElement() ja appendChild()
XPath-tuki Kyllä, ->xpath():n kautta Kyllä, DOMXPath-luokan kautta

Käytännön sääntö on käyttää ensin SimpleXML:ää syötteiden ja yksinkertaisten tiedostojen lukemiseen ja siirtyä DOMDocumentiin, kun sinun on luotava dokumentteja, lisättävä solmuja tiettyihin kohtiin tai validoitava niitä skeemaa vasten.

UKK

Molemmat tallentavat strukturoitua dataa, mutta XML käyttää tageja ja tukee attribuutteja, kommentteja ja skeemoja, kun taas JSON on kevyempi ja yhdistää suoraan taulukoihin ja objekteihin. JSON on yleinen API-rajapinnoissa; XML sopii dokumentteihin ja konfigurointiin.

Lataa tiedosto SimpleXML:llä tai DOMDocumentilla, muuta solmun arvoja tai attribuutteja ja kirjoita se sitten takaisin. SimpleXML:llä muokkaa ominaisuutta ja kutsu asXML('file.xml'); DOMDocumentilla muokkaa solmua ja kutsu save().

XPath on kyselykieli XML-dokumentin solmujen valitsemiseen. PHP:ssä voit kutsua $xml->xpath('//tietue/nimi') -funktiota SimpleXML:llä tai käyttää DOMXPath-luokkaa vastaavien elementtien hakemiseen ilman loo-toimintoa.ping koko puun läpi.

Kyllä. Tekoäly voi luoda koodia simplexml_load_string-, json_encode- ja json_decode-metodeilla muuntaakseen formaattien välillä ja merkitäkseen datan, joka ei vastaa selkeästi, kuten XML-attribuutit tai sekasisältö. Tarkista tulos.

Kyllä. Liitä XML-näyte, niin tekoäly voi tuottaa SimpleXML- tai DOMDocument-koodia, joka lukee juuri tarvitsemasi elementit ja attribuutit, mukaan lukien toistuvien tietueiden silmukat. Testaa sitä oikeita tiedostoja vasten.

Tiivistä tämä viesti seuraavasti: