Jump to content


Photo

Ler Elementos Em Xml!


  • Faça o login para participar
3 replies to this topic

#1 thiago_costabr

thiago_costabr

    12 Horas

  • Usuários
  • 200 posts
  • Sexo:Não informado

Posted 26/10/2004, 10:38

Pessoal,

Como faço para ler o conteúdo de elementos e attributos de um XML com o auxílio do PHP?

Em Action Script, é possível manipular dados tão fácilmente mas em PHP estou encontrando mais dificuldades pois a documentação, na minha opnião, não é muitoa boa e várias funções estão deprecadas.

Alguém saberia como faço para pegar valores de elementos e atributos? Alguém poderia fazer um exemplo simples aqui?

Tipo, eu tenho esse XML abaixo, por exemplo:

<dados>
<nome>Fulano</nome>
<idade>20</idade>
<endereco numero="05" bairro="Tijuca" cidade="Rio"/>
</dados>

Eu gostaria de pegar o valor do elementos <nome> e <idade> e os valores dos attributos numero, bairro e cidade do elemento <endereco>

Algúem poderia me ajudar?

Obrigado,
Att,
Thiago C.

#2 dokkalfr

dokkalfr

    Ich bin der Geist der stets verneint

  • Usuários
  • 203 posts
  • Sexo:Não informado
  • Localidade:Svartheim
  • Interesses:Programação e sexo

Posted 26/10/2004, 13:32

Não sei como se faz no action script, mas em php tem dois metodos:
SAX: http://br.php.net/xml
DOM: http://br.php.net/domxml
Ainda com dúvida? Os melhores programadores PHP estão aqui
=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blog PHPClube
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bookmarks

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 26/10/2004, 22:35

Olá thiago_costabr! ;)

Eu tenho um exemplo aqui no HD que eu fiz à partir de um script leitor de RSS... tenho que procurá-lo...
Quando eu achar eu posto aqui...

T+ :D
Até Mais :)

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 27/10/2004, 01:58

Taí o que prometi... ;)

le_xml.php
<?
$xml="http://localhost/teste.xml";
ini_set('allow_url_fopen', true);
$fp=fopen($xml,'r');
$xml='';
while (!feof($fp)) {
$xml.=fread($fp,128);
}
fclose($fp);
function untag($string,$tag)
{
$tmpval=array();
$preg="|<$tag>(.*?)</$tag>|s";
preg_match_all($preg,$string,$tags);
foreach ($tags[1] as $tmpcont){
$tmpval[]=$tmpcont;
}
return $tmpval;
}
echo "<b><font face=tahoma size=2>Banco de Dados</b>";
$bd=untag($xml,'usuario');
foreach ($bd as $bd) {
$nome=untag($bd,'nome');
$idade=untag($bd,'idade');
$endereco=untag($bd,'endereco');
echo '<br><br><font face=tahoma style="font-size:8pt"><b>Nome:</b> '.$nome[0].'<br><b>Idade:</b> '.$idade[0].'<br><b>Endereço:</b> '.$endereco[0];
}
?>

teste.xml*
<?xml version="1.0" encoding="ISO-8859-1"?>
<bd>
<usuario>
<nome>Fulano</nome>
<idade>20</idade>
<endereco>Rua Ricardo Tavares, s/n - Jd. Conceição - Jundiaí/SP</endereco>
</usuario>
<usuario>
<nome>Paulo</nome>
<idade>16</idade>
<endereco>Rua Nem Te Conto, nº31 - Jd. Boa Esperança - Campinas/SP</endereco>
</usuario>
<usuario>
<nome>João</nome>
<idade>33</idade>
<endereco>Rua Pindamonhangaba, nº741 - Parque das Flores - São Paulo/SP</endereco>
</usuario>
<usuario>
<nome>Maria</nome>
<idade>42</idade>
<endereco>Rua Guaraíba, nº02 - Jd. Londres - Barretos/SP</endereco>
</usuario>
</bd>

* Dados meramente ilustrativos... :P

Bom é isso... tá meio simples, mas dá pra melhorá-lo... :lol:

PS: A tag endereço, eu coloquei tudo junto, porque não sabia como colocar o que vc tinha dito... <endereco numero="05" bairro="Tijuca" cidade="Rio"/>... se alguém souber, muda aí...

PS: Se alguém souber como paginar os dados (de 10 em 10 por ex.), ficaria melhor... B)

Espero ter ajudado... T+ :D

-*-*-*-*-*-*-*-*-*-*-*-*-*-*- POST EDITADO -*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Outra forma... achei melhor que a minha... :huh:

iMasters - Exibindo um arquivo XML usando XSLT com PHPAté Mais :)

Edição feita por: VidaLoka, 27/10/2004, 02:37.





2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq