PHP et XML

XML est un langage de balisage qui ressemble beaucoup au HTML. Un document XML est du texte brut et contient des balises délimitées par <et> .Il existe deux grandes différences entre XML et HTML -

  • XML ne définit pas un ensemble spécifique de balises que vous devez utiliser.
  • XML est extrêmement pointilleux sur la structure des documents.

XML vous donne beaucoup plus de liberté que HTML. HTML a un certain ensemble de balises: les balises <a> </a> entourent un lien, le paragraphe de début <p> et ainsi de suite. Un document XML, cependant, peut utiliser toutes les balises de votre choix. Placez des balises <rating> </rating> autour de la classification d'un film, des balises <height> </height> autour de la hauteur de quelqu'un. Ainsi, XML vous donne la possibilité de disposer vos propres balises.

XML est très strict en ce qui concerne la structure des documents. HTML vous permet de jouer rapidement et librement avec des balises d'ouverture et de fermeture. Mais ce n'est pas le cas avec XML.

Liste HTML qui n'est pas un XML valide

<ul>
   <li>Braised Sea Cucumber
   <li>Baked Giblets with Salt
   <li>Abalone with Marrow and Duck Feet
</ul>

Ce n'est pas un document XML valide car il n'y a pas de balises de fermeture </li> qui correspondent aux trois balises d'ouverture <li>. Chaque balise ouverte dans un document XML doit être fermée.

Liste HTML qui est du XML valide

<ul>
   <li>Braised Sea Cucumber</li>
   <li>Baked Giblets with Salt</li>
   <li>Abalone with Marrow and Duck Feet</li>
</ul>

Analyse d'un document XML

PHP 5 nouveau SimpleXMLmodule facilite l'analyse d'un document XML. Il transforme un document XML en un objet qui fournit un accès structuré au XML.

Pour créer un objet SimpleXML à partir d'un document XML stocké dans une chaîne, passez la chaîne à simplexml_load_string( ). Il renvoie un objet SimpleXML.

Exemple

Essayez l'exemple suivant -

<html>
   <body>
      
      <?php
         $note=<<<XML
         
         <note>
            <to>Gopal K Verma</to>
            <from>Sairamkrishna</from>
            <heading>Project submission</heading>
            <body>Please see clearly </body>
         </note>
         
         XML;
         $xml=simplexml_load_string($note);
         print_r($xml);
      ?>
		
   </body>
</html>

Il produira le résultat suivant -

NOTE - Vous pouvez utiliser la fonction simplexml_load_file( filename) si vous avez du contenu XML dans un fichier.

Pour un détail complet de la fonction d'analyse XML, consultez la référence des fonctions PHP .

Générer un document XML

SimpleXML est idéal pour analyser les documents XML existants, mais vous ne pouvez pas l'utiliser pour en créer un nouveau à partir de zéro.

Le moyen le plus simple de générer un document XML est de créer un tableau PHP dont la structure reflète celle du document XML, puis de parcourir le tableau en imprimant chaque élément avec un formatage approprié.

Exemple

Essayez l'exemple suivant -

<?php
   $channel = array('title' => "What's For Dinner",
      'link' => 'http://menu.example.com/',
      'description' => 'Choose what to eat tonight.');
   
   print "<channel>\n";
   
   foreach ($channel as $element => $content) {
      print " <$element>";
      print htmlentities($content);
      print "</$element>\n";
   }
   
   print "</channel>";
?>

Il produira le résultat suivant -

http://menu.example.com/ Choose what to eat tonight.