Trabalho com XML em PHP: guia completo para análise e criação de documentos XML

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: da análise simples à criação de documentos complexos



XML (eXtensible Markup Language) continua sendo um dos principais formatos para troca de dados, arquivos de configuração e serviços web (SOAP, RSS/Atom). O PHP oferece várias extensões integradas poderosas para trabalhar com XML, que permitem resolver praticamente qualquer tarefa — desde a análise de feeds RSS simples até a geração de documentos complexos com namespaces. Neste artigo, abordaremos as principais ferramentas: SimpleXML, DOMDocument e XMLReader, além de aprender a criar documentos XML dinamicamente.



1. SimpleXML — análise rápida e conveniente



SimpleXML é a extensão mais simples para trabalhar com XML. Ela converte um documento XML em um objeto, cujas propriedades podem ser lidas como arrays e objetos comuns. Ideal para documentos pequenos e médios, quando não é necessária uma navegação complexa.



Carregar XML de uma string ou arquivo



<?php// De uma string$xmlString = '<book><title>PHP para iniciantes</title><author>Ivan Petrov</author></book>';$book = simplexml_load_string($xmlString);

// De um arquivo$books = simplexml_load_file('books.xml');

echo $book->title; // PHP para iniciantesecho $book->author; // Ivan Petrov?>


Trabalhando com atributos e elementos múltiplos



<?php$xml = '<library>    <book id="1">        <title>PHP Objects</title>        <author>Matt Zandstra</author>    </book>    <book id="2">        <title>Clean Code</title>        <author>Robert C. Martin</author>    </book></library>';

$library = simplexml_load_string($xml);

foreach ($library->book as $book) { echo 'ID: ' . $book['id'] . ' — ' . $book->title . ' (' . $book->author . ')<br>';}// ID: 1 — PHP Objects (Matt Zandstra)// ID: 2 — Clean Code (Robert C. Martin)?>


Importante: SimpleXML não suporta consultas XPath complexas com condições (apenas caminhos simples). Para consultas mais poderosas, use DOMDocument ou XPath.



2. DOMDocument — controle total sobre XML



DOMDocument implementa a API DOM do W3C e oferece controle total sobre a estrutura do documento. Você pode adicionar, remover, modificar qualquer nó, trabalhar com namespaces e executar consultas XPath de qualquer complexidade. É a escolha para tarefas profissionais.



Análise e navegação com DOMDocument



<?php$dom = new DOMDocument();$dom->load('books.xml');

// Obter todos os elementos <book>$books = $dom->getElementsByTagName('book');

foreach ($books as $book) { $title = $book->getElementsByTagName('title')->item(0)->nodeValue; $author = $book->getElementsByTagName('author')->item(0)->nodeValue; echo "Livro: $title, Autor: $author<br>";}?>


XPath — consultas poderosas para XML



<?php$dom = new DOMDocument();$dom->load('library.xml');$xpath = new DOMXPath($dom);

// Encontrar todos os livros com preço > 500$expensiveBooks = $xpath->query('//book[price > 500]');

foreach ($expensiveBooks as $book) { echo $book->getElementsByTagName('title')->item(0)->nodeValue . ' — ' . $book->getElementsByTagName('price')->item(0)->nodeValue . ' R$<br>';}?>


3. Criação de documentos XML



O PHP permite não apenas ler, mas também criar documentos XML. Vamos analisar ambas as abordagens.



Criação de XML com SimpleXML



<?php$xml = new SimpleXMLElement('<catalog></catalog>');

$product = $xml->addChild('product');$product->addChild('name', 'Notebook');$product->addChild('price', 75000);$product->addAttribute('id', '12

Recommendations