Leitura de XML – Parte 2 SimpleXML
por João Vagner em 24.12.2008 10:00 Desenvolvimento web, Destaques, Internet, php
Olá Pessoal,
Primeiramente, post de dia 24 de Dezembro, desejos a todos um Feliz Natal, que estejam todos ai junto a amigos e familiares curtindo uma data especial.
Bom, demorei um pouco, mas chegou, a segunta parte de Leitura de XML usando SimpleXML, dessa vez vou usar alguns modelos, ao invez de trabalhar com o nosso Feed de RSS, vamos trabalhar com valores de cambio e pesquisa de CEP. Tudo simples e em poucas linhas.
Primeiramente precisamos de algum XML que seja atualizado, com os valores que temos que trabalhar. Para isso existe esse endereço: http://www.republicavirtual.com.br/cotacao/exemplos.php
Não posso garantir 100% de uptime do link, pois não sei se algo vai mudar ok? Mas iremos trabalhar em cima dos retornos desse xml, ok?
Simple XML
O objetivo é fornecer acesso aos documentos XML usando propriedades de objetos e iterators, não é uma extensão complicada (são poucos métodos) mas é bastante flexível.
Exemplo Básico
Importando o XML da URL:
1 | $file = simplexml_load_file('http://cotacao.republicavirtual.com.br/web_cotacao.php?formato=xml'); |
Iniciando o trabalho
Aqui vamos pegar o valor do dolar comercial para compras:
1 2 3 4 | // importando o arquivo $file = simplexml_load_file('http://cotacao.republicavirtual.com.br/web_cotacao.php?formato=xml'); // pegando a tag dolar_commercial_compra echo $file->dolar_comercial_compra; |
As tags que podemos trabalhar podem ser encontrada nesse XML
1 2 3 4 5 6 7 8 9 10 | <webservicecotacao> <dolar_comercial_compra>2,1260</dolar_comercial_compra> <dolar_comercial_venda>2,1280</dolar_comercial_venda> <dolar_paralelo_compra>2,2200</dolar_paralelo_compra> <dolar_paralelo_venda>2,3000</dolar_paralelo_venda> <euro_dolar_compra>1,2410</euro_dolar_compra> <euro_dolar_venda>1,2410</euro_dolar_venda> <euro_real_compra>2,6384</euro_real_compra> <euro_real_venda>2,6408</euro_real_venda> </webservicecotacao> |
Viram como é simples trabalhar com o SimpleXML? Agora vamos trabalhar para achar endereços de CEP ;) O XML que iremos trabalhar emcima é desse modelo:
Trabalhando com CEP
Código:
1 2 3 4 5 6 7 8 9 10 | <?xml version="1.0" encoding="iso-8859-1" ?> <webservicecep> <resultado>1</resultado> <resultado_txt>sucesso - cep completo</resultado_txt> <uf>SP</uf> <cidade>São Paulo</cidade> <bairro>Santana</bairro> <tipo_logradouro>Rua</tipo_logradouro> <logradouro>Duarte de Azevedo</logradouro> </webservicecep> |
A URL que iremos importar as consultas é: http://cep.republicavirtual.com.br/web_cep.php?cep=02036021&formato=xml
Vamos ao Código:
1 2 3 4 5 6 7 | $file = simplexml_load_file('http://cep.republicavirtual.com.br/web_cep.php?cep=02036021&formato=xml'); echo "UF: " .$file->uf; echo "<br />Cidade: " .$file->cidade; echo "<br />Bairro: " .$file->bairro; echo "<br />Tipo de Logradouro: " .$file->tipo_logradouro; echo "<br />Endereço: " .$file->logradouro; |
Não recomendo que essa aplicação rode atravez da url de pesquisa, a base de dados pode ser baixada nesse endereço: Download
É isso, viram como é simples integrar uma pesquisa de CEP pra completar formulários de cadastros e tudo mais? Agora é com vocês ;)
Tags: Desenvolvimento web, php, simplexml, xml


07.01.09 09:23 at 09:23
SimpleXML, muito bom para coisas simples.
Vocês acham que, com uma versão DOM + DOMXPath, ficaria algo muito desnecessário para por exemplo, carregar um arquivo templates feito com XML?!
PS: Dá uma olhada no link para comentar no final dos posts, está apontando para o href “#respond”
Abraços!
22.01.09 08:26 at 08:26
Não, depende do uso que vai aplicar, eu por exemplo nunca usaria para carregar um template em xml eu usaria o xhtml mesmo, include, mas vai do uso, e conhecimento. :)