Ir para conteúdo

POWERED BY:

Arquivado

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

Wolvelipe

Ler Tags especificas em XML utilizando o PHP

Recommended Posts

Olá galera !Estou com uma dúvida e gostaria da ajuda de você´s......Tenho um arquivo no formato xml e gostaria de ler o mesmo tag por tag e gravando o resultado em arquivos txt diferentes.Ex; <?xml version="1.0" encoding="ISO-8859-1" ?> <channel> <title></title> <link></link> <description></description> <language></language> <copyright></copyright> <image> <title></title> <url></url> <link><link> </image> <lastBuildDate></lastBuildDate> <ttl></ttl> <item> <title></title> <link></link> <description></description> <datePosted /> </item> </channel> O conteúdo da tag image, gravaria o conteúdo que eu selecionasse no arquivo image.txt, o conteúdo da tag item no arquivo item.txt e assim por diante......ficando em loop até não achar mais o valor......Eu tentei 1º dar um fopen, fread e depois fwrite das tags, fazendo um while, só que ele só lia o 1º registro do xml......não lia o documento até o fim. Tentei fazer um parse só que também não consegui......Alguém me da uma LUZ..............Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wolvelipe,

 

Boa tarde, cara acredito que os caras vão me criticar muiiiiito e me xingar, mas eu faria assim (creio eu nem parei para pensar direitinho como fazer isso) mas você pode ler com o JavaScript o Xml e fornecer os dados já mastigadinhos para o PHP apenas escrever.

Ou se você necessita que isso seja em PHP estritamente, pode usar esse link como referência http://br.php.net/manual/pt_BR/ref.simplexml.php e http://www.w3schools.com/php/php_ajax_responsexml.asp.

Nesses dois sites você pode encontrar muiiito mais que talvez ajude. Hum mas inglês é problema???? Hum usa o google [http://www.google.com/language_tools], -=ER=- pelo menos para mim facilita um pouco.

 

Espero ter ajudado e achar a solução favor posta ai para agente ver.

 

Abraços

Paulo Patto

paulopatto.hunter(at)hotmail(dot)com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta Paulo, eu acessei o php.net e não achei nada que fizesse referência a esse respeito......Quanto ao outro site tb não tinha nada sobre isso......Na realidade, preciso abrir o xml dar ler tag por tag, abrir um arquivo txt, gravar o conteúdo que eu quero e dar um fclose qdo chegar uma tag específica.alguém me ajude..................heheheobrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos o negócio tá feio, tentei efetuar um parse e depois gravar e não consegui..............Alguém me ajude........................................hehehevaleu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wolvelipe,Boa noite, só me ersponda uma coisa tem que ser TUDO em PHP??????Se não posso te ajudar com um pouco de JAVASCRIPT!Ok Espero poder ajudar!Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu também estou com problemas pra gravar o xml em algumas variaveis

vou postar o que eu fiz que quase deu certo...se conseguir achar o erro por favor me ajude também...acho que esse codigo vai ajudar

<?$senha=$_POST['password'];$login=$_POST['login'];?><input type= hidden name=login value="<? echo $login ?>"><input type= hidden name=password value="<? echo $senha ?>"><input type= hidden name=token value='4025457042794147057L'>	<?$arquivo = file_get_contents('http://www.factorstudio.com.br/daniellisboa/agenda.xml.'.$login.'&password='.$senha.'&token=4025457042794147057L&logar.x=0&logar.y=0');$xml = simplexml_load_string($arquivo); $nome= 		$xml->nome; $sobrenome= 	$xml->sobrenome; $id= 			$xml->id; $datacadastro= $xml->datacadastro; $validade= 	$xml->validade; $modalidade= 	$xml->modalidade; $situacao= 	$xml->situacao; $fashion= 		$xml->fashion; $carreira=		$xml->marketing; $tecnologia= 	$xml->tecnologia;  $_SESSION['nome']=$nome.$sobrenome;  $_SESSION['logado']='logado'; if($_SESSION['logado'] =='logado') 	{   echo 'Usuario logado: <b>'.$_SESSION['nome'].'</b><br /><br />';	 } echo "A login é: $login<br>"; echo "A senha é: $senha<br>"; echo "O nome de usuario é: $nome<br>"; echo "O sobrenome é: $sobrenome<br>"; echo "O codigo é: $id<br>"; echo "Data de cadastro: $datacadastro<br>"; echo "A validade é: $validade<br>"; echo "A modalidade é: $modalidade<br>"; echo "A situação é: $situacao<br>"; echo "tem clipping fashion? $fashion<br>"; echo "tem clipping carreira? $carreira<br>"; echo "tem clipping tecnologia? $tecnologia<br>";   ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejam se isso ajuda?

 

var ajax;

function startAjax(){

if(window.ActiveXObeject){ajax=new ActiveXObject("Microsoft.XMLHTTP");}

else if(window.XMLHttpRequest){ajax=new window.XMLHttpRequest();}

else{ajax = null;}

}

function handleStateChange(){if(ajax.readyState == 4 && ajax.status == 200){lerXml();}}

function iniciarRequisicao(){

startAjax();

ajax.onreadystatechange = handleStateChange;

ajax.open("GET","arquivo.xml",true);

ajax.send(null);

}

lerXml(){

var xmlDoc = ajax.responseXML;

var canal = xmlDoc.getElementsByTagName("channel").[0];

var imagem = canal.getElementsByTagName("image").[0]; // Aqui temos agora o conteúdo da TAG Imagem só falat chamar a função para gravar no TXT, podemos trabalhara dentro de cada uma vamos supor que eu queira exibir num Alert

exibeDados(imagem);

}

exibeDados(imagem){

var dados = imagem;

var titulo = dados.getElementsByTagName("title").[0].nodeValue;

var url = dados.getElementsByTagName("url").[0].nodeValue;

var link = dados.getElementsByTagName("link").[0].nodeValue;

window.alert("Aqui os dados da IMAGEM\nTitulo -" + titulo +"\nURL - " + url +"\nLINK - " + link);

/*

Acho que tambem pode ser feito desta seguinte forma

for(i=0;i<=3;i++){

var arr = dados.childNodes.nodeValue;

}

window.alert("Aqui os dados da IMAGEM\nTitulo -" + arr[0] +"\nURL - " + arr[1] +"\nLINK - " + arr[2]);

*/

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.