PHP XML Tutorial: Opret, parse, læs med eksempel

Hvad er XML?

XML er forkortelsen for Extensible Markup Language.

XML bruges til at strukturere, lagre og transportere data fra et system til et andet.

XML ligner HTML.

Den bruger åbne- og lukkemærker.

I modsætning til HTML giver XML brugere mulighed for at definere deres egne tags.

Hvad er DOM?

DOM er forkortelsen for Document Object Model.

Det er en tværplatforms- og sprogneutral standard, der definerer, hvordan man får adgang til og manipulerer data i;

  • HTML
  • XHTML
  • XML

DOM XML bruges til at få adgang til og manipulere XML-dokumenter. Det ser XML-dokumentet som en træstruktur.

XML-parsere

En XML-parser er et program, der oversætter XML-dokumentet til et XML Document Object Model (DOM)-objekt.

XML DOM-objektet kan derefter manipuleres vha Javamanuskript, Python, og PHP osv.

Nøgleordet CDATA, som er akronymet for (Unparsed) Character Data, bruges til at ignorere specialtegn såsom "<,>", når et XML-dokument analyseres.

Hvorfor bruge XML?

  • Webtjenester som SOAP og REST bruger XML-format til at udveksle information. At lære, hvad XML er, og hvordan det fungerer, vil give dig konkurrencefordele som udvikler, da moderne applikationer gør stor brug af webtjenester.
  • XML-dokumenter kan bruges til at gemme konfigurationsindstillinger for en applikation
  • Det giver dig mulighed for at oprette dine egne brugerdefinerede tags, som gør det mere fleksibelt.

Eksempel på XML-dokument

Lad os antage, at du udvikler en applikation, der henter data fra en webtjeneste i XML-format.

Nedenfor er et eksempel på, hvordan XML-dokumentet ser ud.

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

  • “ ” angiver den xml-version, der skal bruges, og kodningen
  • “ ” er rodelementet.
  • “ … ” er de underordnede elementer i henholdsvis administration og salg.

Sådan læser du XML ved hjælp af PHP

Lad os nu skrive koden, der skal læse medarbejdernes XML-dokument og vise resultaterne i en webbrowser. 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('medarbejdere.xml');" bruger simplexml_load_file-funktionen til at indlæse filnavnet ansatte.xml og tildele indholdet til array-variablen $xml.
  • "$list = $xml->record;" henter indholdet af postknudepunktet.
  • "for ($i = 0; $i < count(...)..." er for-løkken, der læser det numeriske array og udsender resultaterne
  • "$list[$i]->attributes()->man_no;" læser man_no-attributten for elementet
  • "$list[$i]->navn;" læser værdien af ​​navnet underordnet element
  • "$list[$i]->position;" læser værdien af ​​positionsunderelementet

Tester vores applikation

Hvis du antager, at du har gemt filen index.php i mappen phptus/xml, skal du gå til URL'en http://localhost/phptuts/xml/index.php

Læs XML ved hjælp af PHP

Sådan opretter du et XML-dokument ved hjælp af PHP

Vi vil nu se på, hvordan man opretter et XML-dokument ved hjælp af PHP.

Vi vil bruge eksemplet ovenfor i DOM-trædiagrammet.

Følgende kode bruger PHP indbygget i klassen DOMDocument til at oprette 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 = nyt DOMDocument();" opretter en forekomst af DOMDocument-klassen.
  • "$dom->encoding = 'utf-8';" indstiller dokumentkodningen til utf-8
  • "$dom->xmlVersion = '1.0';" angiver versionsnummer 1.0
  • "$dom->formatOutput = sand;" sikrer, at outputtet er godt formateret
  • "$root = $dom->createElement('Film');" opretter rodnoden med navnet Movies
  • "$attr_movie_id = new DOMAttr('movie_id', '5467');" definerer film-id-attributten for Movies node
  • "$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" opretter den underordnede node for Movies node. ElementName angiver navnet på elementet, f.eks. Titel. ElementValue indstiller den underordnede nodeværdi, f.eks. Kampagnen.
  • "$root->appendChild($movie_node);" føjer movie_node-elementerne til rodnoden Movies
  • "$dom->appendChild($root);" føjer rodnoden til XML-dokumentet.
  • "$dom->save($xml_file_name);" gemmer XML-filen i rodmappen på webserveren.
  • "ekko ' ' . $xml_filnavn . ' er blevet oprettet';" opretter linket til XML-filen.

Tester vores applikation

Hvis du antager, at du har gemt filen create_movies_list i mappen phptuts/xml, skal du gå til URL'en http://localhost/phptuts/xml/create_movies_list.php

Opret et XML-dokument ved hjælp af PHP

Klik på linket movies_list_xml

Opret et XML-dokument ved hjælp af PHP

Resumé

  • XML er forkortelsen for Extensible Markup Language
  • XML kan bruges til at udveksle information mellem systemer eller lagre konfigurationsindstillinger for en applikation osv.
  • DOM er forkortelsen for Document Object Model. XML DOM ser XML-dokumentet som en træstruktur
  • En XML Parser er et program, der oversætter XML et XML-dokument til et DOM-træstruktur-lignende dokument.
  • CDATA bruges til at ignorere specialtegn ved parsing af XML-dokumenter.
  • PHP bruger simplexml_load_file til at læse XML-dokumenter og returnere resultaterne som en numerisk matrix
  • PHP DOMDocument-klasse til at oprette XML-filer.