Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ksms

Ler XML pelo PHP

Recommended Posts

Olá.Gostaria de ler com php (para posterior inserção em um bd) o endereço e os links de algumas imagens contidas em um arquivo xml.Eis o xml:

<agenda>     <photos> 	<photo path="jpg/01.jpg" link="http://www.terra.com.br" />  	<photo path="jpg/02.jpg" link="http://www.uol.com.br" />  	<photo path="jpg/03.jpg" link="http://www.globo.com" />   	<photo path="jpg/04.jpg" link="http://www.estadao.com.br" />   </photos></agenda> 

Se eu troca a parte de <photo ..... /> por qualquer coisa, eu consigo efetuar a leitura. Porém, dessa forma, naum consigo ler nada.Se alguem puder me ajudar, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, bem-vindo(a) ao iMasters, ksms. :D

 

Você usa PHP 5? Se sim, veja esta extensão:

http://br.php.net/simplexml

 

No Manual há exemplos bem claros de como usar essa classe. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo, Também estou precisando desenvolver uma ferramenta como esta. Peguei um código aqui que usa esta função. Roda certinho local, mas quando está no servidor dá erro - Parse error: syntax error, unexpected T_OBJECT_OPERATOR in... Li que os provedores não habilitam o uso de ferramentas que buscam informações externas. Saberia dizer se procede a informação?!Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

<agenda>	 <photos> 	<photo path="jpg/01.jpg" link="http://www.terra.com.br" />	  <photo path="jpg/02.jpg" link="http://www.uol.com.br" />	  <photo path="jpg/03.jpg" link="http://www.globo.com" />   	<photo path="jpg/04.jpg" link="http://www.estadao.com.br" />   </photos></agenda>
PHP
foreach (simplexml_load_file("agenda.xml"])->photos as $fotos)

{

        echo $fotos->path;

        echo $fotos->link;

}

 

Assim deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já fez algum teste com a função, ou partiu diretamente pra olhar se ela tava disponível?A partir do PHP 5.0, o simplexml já tá integrado ao núcleo. ou seja, ele já faz parte, sem necessidade de nenhuma extensão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

/*muito simples essa programação e funciona eu acho ne? aqui galera da pra diminuir isso ai num da?*/

<?php

function mostraxml($url,$tag)

{

$i=1;

$arquivo = file ($url);

// Percorre o array, mostrando o fonte XML linha por linha.

foreach ($arquivo as $string)

{

//verifica a ocorrencia da tag

if (strpos($string,$tag))

{

//filtra a tag

$vetor[$i]=substr($string,strpos($string,'>')+1,strrpos($string,'<')-strpos($string,'>')-1);//grava no array

$i++;

}

}

return $vetor;//retorna o array com as ocorrencias da tag

}

?>

 

<?php

 

echo '<br><br><br><table border="0" align="center">';

$nome=mostraxml('programas.xml','nome');

$descricao=mostraxml('programas.xml','descricao');

$versao=mostraxml('programas.xml','versao');

$link=mostraxml('programas.xml','link');

 

for ($i = 1; $i <=count($nome); $i++) {

echo '<tr>';

echo '<td style="color:white;">'.$nome[$i].'</td>';

echo '<td style="color:white;">'.$descricao[$i].'</td>';

echo '<td style="color:white;">'.$versao[$i].'</td>';

echo '<td><a style="text-decoration: none; color:green;" href="'.$link[$i].'">Baixar</a></td>';

echo '</tr>';

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.