+1

Lendo um Arquivo xml com PHP.

criado por Fernando Henrique Silva Ferreira em 29/06/2011 2:33pm
Bem primeiramente considerem o seguinte codigo xml como o contido na url:
http://wwww.seusite.com.br/suporte.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<suporte>
       
<conteudo>
               
<title>
                        Suporte - Joaozinho.
               
</title>
               
<descricao>
 Pensando em comodidade, excelência e qualidade de atendimento, a .....

               
</descricao>
               
<contato>

                       
<email>
                                teste@lal.com.br
                       
</email>
                       
<skype>
                                suporte.lala
                       
</skype>
                       
<telefone>
                                (66) 5555-4444
                       
</telefone>
               
</contato>

               
<aviso>
                        Aviso: Qualquer duvida em relação ao gestor, entre em contato com nosso Suporte:
teste@lalal.com.br
               
</aviso>
               
<ultima>
                        Estamos com várias promoções de Criação de Sites, para  mais informações entrem contato
               
</ultima>
       
</conteudo>
 
</suporte>

Bem agora vamos pegar o xml pela url e atribuir á uma váriavel.
//Pegando url e atribuindo para  a váriavel filename
$filename
="http://seusite.com.br/suporte.xml";

Agora pegamos a variavel $filename e jogamos seu conteudo para uma 'string' $xmlstr

//file_get_contents -> Lê todo o conteúdo de um arquivo para uma string;

//Jogando o filename para uma string.

$xmlstr
= file_get_contents($filename);

Usaremos a extensão DOM do php para manipular o xml.

// * Instância a classe, e carrega o XML que está na 'string'.

$dom
= new domDocument();

$dom
->loadXML($xmlstr);

$xml
= simplexml_import_dom($dom); //Recebe um objeto SimpleXMLElement de um nó DOM.
Poderiamos usar um foreach agora, mas como meu xml é simples e não tem várias repetições ultilizaremos apenas sua chamada.

Podemos ler seus valores da seguinte forma:
//exibe o email dentro do nó contato que por sua vez está dentro do nó de conteudo.
 
$xml
->conteudo->contato->email;

por ex: para ler o Titulo colocariamos:

$xml->conteudo->title;
e assim por diante,

espero que tenham gostado e até a próxima.

Comentários:

Mostrando 1 - 3 de 3 comentários
Gregory Iyama, é só fazer o foreach no xml.
26/02/2016 11:56am (~9 anos atrás)

Gregory Iyama disse:
Olá Fernando Henrique Silva Ferreira,

achei da hr, mas e qnd tiver mais d uma tag contato?

por exemplo, eu quero dar um echo no email do segundo contato, como faz?



abracos!
26/02/2016 9:53am (~9 anos atrás)

Dominus Farib disse:
Querendo saber mais sobre geração e manipulação de arquivos XML com PHP
Visitem este blog
http://dofaridfr.blogspot.com.br/
Lé tem ótimos exemplos práticos e explicações de como utilizar a biblioteca SimpleXML
03/08/2013 12:46pm (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)