PHP XML-veiledning: Opprett, analyser, les med eksempel

Hva er XML?

XML er forkortelsen for Extensible Markup Language.

XML brukes til รฅ strukturere, lagre og transportere data fra ett system til et annet.

XML ligner pรฅ HTML.

Den bruker รฅpnings- og lukkeetiketter.

I motsetning til HTML lar XML brukere definere sine egne tagger.

Hva er DOM?

DOM er forkortelsen for Document Object Model.

Det er en tverrplattform- og sprรฅknรธytral standard som definerer hvordan man fรฅr tilgang til og manipulerer data i;

  • HTML
  • XHTML
  • XML

DOM XML brukes til รฅ fรฅ tilgang til og manipulere XML-dokumenter. Den viser XML-dokumentet som en trestruktur.

XML-parsere

En XML-parser er et program som oversetter XML-dokumentet til et XML Document Object Model (DOM)-objekt.

XML DOM-objektet kan deretter manipuleres ved hjelp av JavaManus, Python, og PHP osv.

Nรธkkelordet CDATA som er akronymet for (Unparsed) Character Data brukes til รฅ ignorere spesialtegn som "<,>" nรฅr du analyserer et XML-dokument.

Hvorfor bruke XML?

  • Webtjenester som SOAP og REST bruker XML-format for รฅ utveksle informasjon. ร… lรฆre hva XML er og hvordan det fungerer vil gi deg konkurransefortrinn som utvikler siden moderne applikasjoner bruker mye webtjenester.
  • XML-dokumenter kan brukes til รฅ lagre konfigurasjonsinnstillinger for en applikasjon
  • Den lar deg lage dine egne tilpassede tagger som gjรธr den mer fleksibel.

Eksempel pรฅ XML-dokument

La oss anta at du er utvikletping et program som henter data fra en webtjeneste i XML-format.

Nedenfor er et eksempel pรฅ hvordan XML-dokumentet ser ut.

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

HER,

  • " โ€ spesifiserer xml-versjonen som skal brukes og kodingen
  • " โ€ er rotelementet.
  • " โ€ฆ โ€ er underelementene i henholdsvis administrasjon og salg.

Hvordan lese XML ved hjelp av PHP

La oss nรฅ skrive koden som skal lese de ansattes XML-dokument og vise resultatene i en nettleser. 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>';
}
?>

HER,

  • "$xml = simplexml_load_file('ansatte.xml');" bruker simplexml_load_file-funksjonen til รฅ laste inn filnavnet ansatte.xml og tilordne innholdet til matrisevariabelen $xml.
  • "$list = $xml->record;" henter innholdet i postnoden.
  • "for ($i = 0; $i < count(...)..." er for-lรธkken som leser den numeriske matrisen og sender ut resultatene
  • "$list[$i]->attributes()->mann_no;" leser man_no-attributtet til elementet
  • ยซ$list[$i]->navn;ยป leser verdien av navnet underordnet element
  • "$list[$i]->posisjon;" leser verdien av det underordnede posisjonselementet

Testing av sรธknaden vรฅr

Forutsatt at du lagret filen index.php i phptus/xml-mappen, bla til URL http://localhost/phptuts/xml/index.php

 Les XML ved hjelp av PHP

Hvordan lage et XML-dokument ved hjelp av PHP

Vi skal nรฅ se pรฅ hvordan du lager et XML-dokument ved hjelp av PHP.

Vi vil bruke eksempelet ovenfor i DOM-trediagrammet.

Fรธlgende kode bruker PHP innebygd i klassen DOMDocument for รฅ lage et XML-dokument.

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

HER,

  • "$dom = nytt DOMDocument();" oppretter en forekomst av DOMDocument-klassen.
  • "$dom->encoding = 'utf-8';" setter dokumentkodingen til utf-8
  • "$dom->xmlVersion = '1.0';" spesifiserer versjonsnummer 1.0
  • "$dom->formatOutput = sant;" sikrer at utgangen er godt formatert
  • "$root = $dom->createElement('Movies');" oppretter rotnoden med navnet Movies
  • "$attr_movie_id = new DOMAttr('movie_id', '5467');" definerer film-id-attributtet til Movies-noden
  • "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" oppretter den underordnede noden til Movies-noden. ElementName spesifiserer navnet pรฅ elementet, f.eks. Tittel. ElementValue setter den underordnede nodeverdien, f.eks. The Campaign.
  • "$root->appendChild($movie_node);" legger til movie_node-elementene til rotnoden Movies
  • "$dom->appendChild($root);" legger til rotnoden til XML-dokumentet.
  • "$dom->save($xml_file_name);" lagrer XML-filen i rotkatalogen til webserveren.
  • "ekko" . $xml_filnavn . ' har blitt opprettet';" oppretter koblingen til XML-filen.

Testing av sรธknaden vรฅr

Forutsatt at du lagret filen create_movies_list i phptuts/xml-mappen, bla til URL http://localhost/phptuts/xml/create_movies_list.php

Lag et XML-dokument med PHP

Klikk pรฅ movies_list_xml-lenken

Lag et XML-dokument med PHP

Sammendrag

  • XML er forkortelsen for Extensible Markup Language
  • XML kan brukes til รฅ utveksle informasjon mellom systemer eller lagre konfigurasjonsinnstillinger for en applikasjon etc.
  • DOM er forkortelsen for Document Object Model. XML DOM ser pรฅ XML-dokumentet som en trestruktur
  • En XML Parser er et program som oversetter XML et XML-dokument til et DOM-trestrukturlignende dokument.
  • CDATA brukes til รฅ ignorere spesialtegn nรฅr du analyserer XML-dokumenter.
  • PHP bruker simplexml_load_file til รฅ lese XML-dokumenter og returnere resultatene som en numerisk matrise
  • PHP DOMDocument-klasse for รฅ lage XML-filer.

Oppsummer dette innlegget med: