SimpleXML PHP

O SimpleXML lida com as tarefas XML mais comuns, deixando as outras tarefas para outras extensões.

O que é SimpleXML?

O SimpleXML é uma nova característica do PHP 5. Quando se conhece a layout do documento XML, é uma maneira conveniente de obter atributos e texto de elementos.

Em comparação com os analisadores DOM ou Expat, o SimpleXML pode ler dados de texto de elementos com apenas algumas linhas de código.

O SimpleXML pode converter um documento XML em um objeto, por exemplo:

  • Elemento - Convertido em objeto SimpleXMLElement. Quando existem múltiplos elementos no mesmo nível, eles são colocados em um array.
  • Atributo - Acesso através de um array associativo, cujos índices correspondem aos nomes dos atributos.
  • Dado do elemento - Os dados de texto do elemento são convertidos em string. Se um elemento tiver múltiplos nós de texto, eles serão organizados na ordem em que forem encontrados.

Quando executar tarefas básicas como as seguintes, o SimpleXML é muito rápido de usar:

  • Ler arquivo XML
  • Extrair dados de uma string XML
  • Edição de nós de texto ou atributos

No entanto, ao lidar com XML avançado, como namespaces, é melhor usar o analisador Expat ou XML DOM.

Instalação

A partir do PHP 5.0, a função SimpleXML é parte integrante do núcleo do PHP. Não é necessário instalação para usar essas funções.

Usando SimpleXML

Aqui está o arquivo XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Nós pretendemos exportar o nome e os dados dos elementos do arquivo XML acima.

Isso é o que precisamos fazer:

  1. Carregar o arquivo XML
  2. Obter o nome do primeiro elemento
  3. Criar um loop acionado por cada nó filho usando a função children()
  4. Imprimir o nome e os dados de cada nó filho

Exemplo

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

A saída do código acima é:

note
to: George
from: John
heading: Lembrete
body: Não se esqueça da reunião!

Mais informações sobre PHP SimpleXML

Para mais informações sobre PHP SimpleXML, visite nosso Manual de Referência SimpleXML PHP.