+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 (~8 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 (~8 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 (~10 anos atrás)

Novo Comentário:

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