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 utvikler en applikasjon 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 har lagret filen index.php i phptus/xml-mappen, bla til URL-en 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 har lagret filen create_movies_list i phptuts/xml-mappen, bla til URL-en 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.