Trabalho com XML em PHP: parsing, criação e processamento de dados

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalho com XML em PHP: Guia completo para desenvolvedores



XML (eXtensible Markup Language) continua sendo um dos principais formatos para troca de dados, configuração de aplicações e integração com serviços externos. O PHP oferece várias ferramentas poderosas para trabalhar com XML, cada uma adequada para diferentes cenários. Neste artigo, abordaremos detalhadamente as principais bibliotecas e abordagens usadas no desenvolvimento PHP moderno.



Principais ferramentas do PHP para trabalhar com XML



No PHP, existem três extensões principais para trabalhar com XML, cada uma com suas características e áreas de aplicação:



  • SimpleXML — um parser simples e intuitivo para leitura de XML. Ideal para arquivos pequenos e processamento rápido.
  • DOMDocument — uma implementação completa do W3C DOM para trabalhar com documentos XML. Suporta leitura, escrita, modificação e validação.
  • XMLReader / XMLWriter — parsers de fluxo para trabalhar com grandes arquivos XML (centenas de megabytes e gigabytes).


1. SimpleXML — início rápido



SimpleXML permite converter uma string ou arquivo XML em um objeto que pode ser manipulado como um array ou objeto comum. É a escolha mais popular para tarefas simples.



<?php// Leitura de XML a partir de uma string$xmlString = '<books>    <book id="1">        <title>PHP para iniciantes</title>        <author>Ivan Petrov</author>        <price currency="RUB">1500</price>    </book>    <book id="2">        <title>XML em detalhes</title>        <author>Anna Smirnova</author>        <price currency="RUB">2000</price>    </book></books>';

$xml = simplexml_load_string($xmlString);

// Acesso aos dadosforeach ($xml->book as $book) { echo "ID: " . $book['id'] . ""; echo "Título: " . $book->title . ""; echo "Autor: " . $book->author . ""; echo "Preço: " . $book->price . " " . $book->price['currency'] . "

";}

// Criação de novo XML$newXml = new SimpleXMLElement('<catalog/>');$product = $newXml->addChild('product');$product->addAttribute('sku', 'P001');$product->addChild('name', 'Notebook');$product->addChild('price', 55000);

echo $newXml->asXML();?>


2. DOMDocument — controle total



DOMDocument fornece acesso completo ao Document Object Model. Você pode criar, modificar e excluir qualquer nó, além de executar consultas XPath para buscar dados.



<?php$dom = new DOMDocument('1.0', 'UTF-8');$dom->formatOutput = true;

// Criação do elemento raiz$root = $dom->createElement('employees');$dom->appendChild($root);

// Adicionando um funcionário$employee = $dom->createElement('employee');$employee->setAttribute('id', '101');

$name = $dom->createElement('name', 'Alexei Kuznetsov');$employee->appendChild($name);

$position = $dom->createElement('position', 'Desenvolvedor');$employee->appendChild($position);

$root->appendChild($employee);

// Consulta XPath$xpath = new DOMXPath($dom);$query = "//employee[@id='101']/name";$result = $xpath->query($query);

if ($result->length > 0) { echo "Encontrado: " . $result->item(0)->nodeValue;}

// Salvando em arquivo$dom->save('employees.xml');?>


3. XMLReader e XMLWriter — para grandes volumes de dados



Quando os arquivos XML se tornam grandes demais para carregar na memória (mais de 10-50 MB), os parsers de fluxo entram em ação. O XMLReader lê o documento nó por nó, enquanto o XMLWriter cria XML em partes.



<?php// Leitura de um grande arquivo XML$reader = new XMLReader();$reader->open('large_data.xml');

while ($reader->read(

Recommendations