PHP e XML

XML é uma linguagem de marcação que se parece muito com HTML. Um documento XML é um texto simples e contém tags delimitadas por <e>. Existem duas grandes diferenças entre XML e HTML -

  • XML não define um conjunto específico de tags que você deve usar.
  • XML é extremamente exigente quanto à estrutura de documentos.

XML oferece muito mais liberdade do que HTML. O HTML tem um certo conjunto de tags: as tags <a> </a> circundam um link, o parágrafo inicial <p> e assim por diante. Um documento XML, entretanto, pode usar qualquer marca que você desejar. Coloque as tags <rating> </rating> em torno da classificação de um filme e as tags <height> </height> na altura de alguém. Assim, o XML oferece a opção de usar suas próprias tags.

XML é muito rígido quando se trata de estrutura de documentos. HTML permite que você jogue rápido e solto com algumas tags de abertura e fechamento. Mas este não é o caso do XML.

Lista HTML que não é XML válido

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

Este não é um documento XML válido porque não há tags </li> de fechamento para corresponder às três tags <li> de abertura. Cada tag aberta em um documento XML deve ser fechada.

Lista HTML que é XML válido

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

Analisando um documento XML

Novo do PHP 5 SimpleXMLmódulo torna a análise de um documento XML, bem, simples. Ele transforma um documento XML em um objeto que fornece acesso estruturado ao XML.

Para criar um objeto SimpleXML a partir de um documento XML armazenado em uma string, passe a string para simplexml_load_string( ). Ele retorna um objeto SimpleXML.

Exemplo

Experimente o seguinte exemplo -

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

Isso produzirá o seguinte resultado -

NOTE - Você pode usar a função simplexml_load_file( filename) se você tiver conteúdo XML em um arquivo.

Para obter um detalhe completo da função de análise XML, verifique a Referência de Função PHP .

Gerando um Documento XML

SimpleXML é bom para analisar documentos XML existentes, mas você não pode usá-lo para criar um novo desde o início.

A maneira mais fácil de gerar um documento XML é construir um array PHP cuja estrutura espelhe a do documento XML e então iterar por meio do array, imprimindo cada elemento com a formatação apropriada.

Exemplo

Experimente o seguinte exemplo -

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

Isso produzirá o seguinte resultado -

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