PHP XML-handledning: Skapa, analysera, läs med exempel

Vad är XML?

XML är förkortningen för Extensible Markup Language.

XML används för att strukturera, lagra och transportera data från ett system till ett annat.

XML liknar HTML.

Den använder öppnings- och stängningstaggar.

Till skillnad från HTML tillåter XML användare att definiera sina egna taggar.

Vad är DOM?

DOM är akronymen för Document Object Model.

Det är en plattformsoberoende och språkneutral standard som definierar hur man kommer åt och manipulerar data i;

  • html
  • XHTML
  • XML

DOM XML används för att komma åt och manipulera XML-dokument. Det visar XML-dokumentet som en trädstruktur.

XML-tolkare

En XML-parser är ett program som översätter XML-dokumentet till ett DOM-objekt (XML Document Object Model).

XML DOM-objektet kan sedan manipuleras med hjälp av JavaManus, Python, och PHP etc.

Nyckelordet CDATA som är förkortningen för (Oparsed) Character Data används för att ignorera specialtecken som "<,>" vid analys av ett XML-dokument.

Varför använda XML?

  • Webbtjänster som SOAP och REST använder XML-format för att utbyta information. Att lära sig vad XML är och hur det fungerar kommer att ge dig konkurrensfördelar som utvecklare eftersom moderna applikationer använder mycket webbtjänster.
  • XML-dokument kan användas för att lagra konfigurationsinställningar för en applikation
  • Det låter dig skapa dina egna anpassade taggar som gör det mer flexibelt.

Exempel på XML-dokument

Låt oss anta att du utvecklar en applikation som hämtar data från en webbtjänst i XML-format.

Nedan är ett exempel på hur 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>

HÄR,

  • " ” specificerar xml-versionen som ska användas och kodningen
  • " ” är rotelementet.
  • " … ” är de underordnade delarna av administration respektive försäljning.

Hur man läser XML med PHP

Låt oss nu skriva koden som ska läsa anställdas XML-dokument och visa resultaten i en webbläsare. 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>';
}
?>

HÄR,

  • "$xml = simplexml_load_file('anställda.xml');" använder funktionen simplexml_load_file för att ladda filnamnet anställda.xml och tilldela innehållet till arrayvariabeln $xml.
  • "$list = $xml->record;" hämtar innehållet i postnoden.
  • "for ($i = 0; $i < count(...)..." är for-loopen som läser den numeriska matrisen och matar ut resultaten
  • "$list[$i]->attributes()->man_no;" läser man_no-attributet för elementet
  • "$list[$i]->namn;" läser värdet av elementet namn underordnade
  • "$list[$i]->position;" läser av värdet på positionsunderelementet

Testar vår applikation

Om du antar att du sparat filen index.php i mappen phptus/xml, bläddra till URL:en http://localhost/phptuts/xml/index.php

Läs XML med PHP

Hur man skapar ett XML-dokument med PHP

Vi ska nu titta på hur man skapar ett XML-dokument med PHP.

Vi kommer att använda exemplet ovan i DOM-träddiagrammet.

Följande kod använder den inbyggda PHP-klassen DOMDocument för att skapa ett 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";
?>

HÄR,

  • "$dom = nytt DOMDocument();" skapar en instans av klassen DOMDocument.
  • "$dom->encoding = 'utf-8';" ställer in dokumentkodningen till utf-8
  • “$dom->xmlVersion = '1.0';” anger versionsnumret 1.0
  • "$dom->formatOutput = sant;" säkerställer att utgången är välformaterad
  • "$root = $dom->createElement('Filmer');" skapar rotnoden med namnet Filmer
  • "$attr_movie_id = new DOMAttr('movie_id', '5467');" definierar film-id-attributet för filmnoden
  • "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" skapar den underordnade noden för Movies-noden. ElementName anger namnet på elementet, t.ex. Titel. ElementValue ställer in det underordnade nodvärdet, t.ex. Kampanjen.
  • "$root->appendChild($movie_node);" lägger till movie_node-elementen till rotnoden Movies
  • "$dom->appendChild($root);" lägger till rotnoden till XML-dokumentet.
  • "$dom->save($xml_file_name);" sparar XML-filen i rotkatalogen på webbservern.
  • "eko" . $xml_file_name . ' har skapats framgångsrikt';" skapar länken till XML-filen.

Testar vår applikation

Om du antar att du sparat filen create_movies_list i mappen phptuts/xml, bläddra till URL:en http://localhost/phptuts/xml/create_movies_list.php

Skapa ett XML-dokument med PHP

Klicka på länken movies_list_xml

Skapa ett XML-dokument med PHP

Sammanfattning

  • XML är förkortningen för Extensible Markup Language
  • XML kan användas för att utbyta information mellan system eller lagra konfigurationsinställningar för en applikation etc.
  • DOM är akronymen för Document Object Model. XML DOM ser XML-dokumentet som en trädstruktur
  • En XML Parser är ett program som översätter XML ett XML-dokument till ett DOM-trädstrukturliknande dokument.
  • CDATA används för att ignorera specialtecken vid analys av XML-dokument.
  • PHP använder simplexml_load_file för att läsa XML-dokument och returnera resultaten som en numerisk matris
  • PHP DOMDocument-klass för att skapa XML-filer.