PHP e XML

XML è un linguaggio di markup che assomiglia molto all'HTML. Un documento XML è testo semplice e contiene tag delimitati da <e>. Ci sono due grandi differenze tra XML e HTML:

  • XML non definisce un insieme specifico di tag da utilizzare.
  • XML è estremamente esigente riguardo alla struttura del documento.

XML ti dà molta più libertà dell'HTML. L'HTML ha un certo insieme di tag: i tag <a> </a> circondano un collegamento, il paragrafo <p> inizia e così via. Un documento XML, tuttavia, può utilizzare tutti i tag desiderati. Metti i tag <rating> </rating> intorno alla valutazione di un film, i tag <height> </height> intorno all'altezza di qualcuno. Pertanto XML ti offre la possibilità di dispositivo i tuoi tag.

XML è molto rigoroso quando si tratta di struttura del documento. L'HTML ti consente di giocare velocemente e liberamente con alcuni tag di apertura e chiusura. Ma questo non è il caso di XML.

Elenco HTML che non è XML valido

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

Questo non è un documento XML valido perché non ci sono tag di chiusura </li> da abbinare ai tre tag di apertura <li>. Ogni tag aperto in un documento XML deve essere chiuso.

Elenco HTML che è XML valido

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

Analisi di un documento XML

PHP 5 è nuovo SimpleXMLIl modulo rende l'analisi di un documento XML, beh, semplice. Trasforma un documento XML in un oggetto che fornisce un accesso strutturato all'XML.

Per creare un oggetto SimpleXML da un documento XML memorizzato in una stringa, passare la stringa a simplexml_load_string( ). Restituisce un oggetto SimpleXML.

Esempio

Prova il seguente esempio:

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

Produrrà il seguente risultato:

NOTE - Puoi usare la funzione simplexml_load_file( filename) se hai contenuto XML in un file.

Per un dettaglio completo della funzione di analisi XML, consultare il riferimento alle funzioni PHP .

Generazione di un documento XML

SimpleXML è utile per analizzare i documenti XML esistenti, ma non è possibile utilizzarlo per crearne uno nuovo da zero.

Il modo più semplice per generare un documento XML è costruire un array PHP la cui struttura rispecchia quella del documento XML e quindi iterare attraverso l'array, stampando ogni elemento con la formattazione appropriata.

Esempio

Prova il seguente esempio:

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

Produrrà il seguente risultato:

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