Aprenda como ler arquivos XML com PHP

Aprenda como ler arquivos XML com PHPNesse post vou demonstrar como podemos ler arquivos XML com PHP de maneira bem simples. É muito comum nos dias atuais aplicações PHP se comunicarem com diversos tipos de APIs e Web Services espalhados pela WEB.

Grande parte dessa troca de informações entre diferentes plataformas ocorre graças aos arquivos no formato XML, esse é um dos motivos que torna a leitura de arquivos XML tão importante para aplicações PHP.

 

Outros posts sobre PHP que podem interessar:

Requisições com a biblioteca cURL no PHP

PHP diferença entre Aspas e Apóstrofos

PHP 7 – Liberado primeira versão Alpha | Dica

 

O que significa XML?

 “XML (eXtensible Markup Language) é uma recomendação da W3C para gerar linguagens de marcação para necessidades especiais.
É um dos subtipos da SGML (acrônimo de Standard Generalized Markup Language ou Linguagem Padronizada de Marcação Genérica) capaz de descrever diversos tipos de dados. Seu propósito principal é a facilidade de compartilhamento de informações através da internet.”  Fonte: Wikipédia

Exemplo do formato XML

 

Ler arquivos XML com PHP

O PHP fornece muita facilidade para esse tipo de necessidade, disponibilizando 2 funções nativas para leitura de arquivos XML e uma classe para leitura de XML com Namespaces:

Função simplexml_load_file()

Ler arquivos XML com PHP utilizando a função simplexml_load_file() é bem simples, ela recebe um parâmetro que é o caminho (path) para um arquivo XML e transforma esse conteúdo em objeto.

Vou demonstrar como funciona, para esse exemplo montei um arquivo XML com o nome vendas.xml, simulando 2 vendas com dados do cliente e dos produtos vendidos:

Agora usando a função simplexml_load_file() vou transformar esse conteúdo em objeto e percorrer os registros com foreach().

Post relacionado:  Conexão PDO com SQL Server 2008 e 2012 no Ubuntu | Dica

Alguns pontos que merecem destaque, podemos acessar tags que estão na raiz do XML apenas chamando $xml->titulo. Com o foreach() percorremos as vendas e para cada iteração atribuo os dados da venda para variável $registro, desse modo basta acessar $registro->nome_tag e quando chegamos na tag itens basta efetuar outro foreach() sobre os itens da venda atual.

 

Função simplexml_load_string()

A função simplexml_load_string() é mais uma das facilidades que temos para ler arquivos XML com PHP, ela é muito similar a função simplexml_load_file() porém recebe como parâmetro uma string contendo um XML e transforma em objeto. 

No exemplo abaixo simplesmente atribui o mesmo conteúdo do arquivo XML apresentando no exemplo anterior e atribui para variável $string, posteriormente passei essa variável como parâmetro para função simplexml_load_string(), o restante da lógica de leitura é a mesma.

Post relacionado:  10 pegadinhas PHP escondidas na linguagem

 

Post relacionado:  Sistema de Login com AJAX e PHP - Blindado

Classe SimpleXMLElement

A classe SimpleXMLElement possui vários métodos e com ela podemos ler arquivos XMLs contendo Namespaces, após instanciar o objeto é necessário alguns passos para efetuar a leitura do arquivo XML, temos que capturar os Namespaces existentes e os respectivos elementos filhos para cada Namespace, por fim percorrer com foreach() os elementos capturados.

 

Bom pessoal nesse post demonstrei como ler arquivos XML com PHP utilizando funções e classes nativas. Já desenvolvi em outras linguagens e sem dúvida o PHP é a linguagem que mais oferece facilidade para leitura de XMLs, mesmo os arquivos com Namespaces possuem pouca complexidade para leitura.

Se você gostou desse post compartilhe nas redes sociais, até a próxima …

Show Buttons
Hide Buttons