Ir para conteúdo

POWERED BY:

Arquivado

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

ricardo coelho designer

[Resolvido] Ler xml do uol As2

Recommended Posts

Boa tarde, estou precisando da ajuda de vcs para solucionar problema de leitura do xml do uol, no arquivo que tenho não consigo visualizar mais detalhes posto o código abaixo:

 

1 - crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="uol.com.br"/>
<allow-access-from domain="rss.noticias.uol.com.br"/>
<allow-access-from domain="rss.noticias.uol.com.br/ultnot/"/>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="*.uol.com.br" headers="*" secure="true"/>
</cross-domain-policy>

 

2 - AS2 (lembrando esse código não é meu)

System.security.loadPolicyFile('crossdomain.xml'); 
System.useCodepage = true; 

//caixa de texto dinamico 
var campoTxt:TextField = _root.createTextField("campoTxt", root.getNextHighestDepth(),20, 20, 510, 360); 
//configuro meu texto 
campoTxt._width = Stage.width; 
campoTxt._height = Stage.height; 
campoTxt.html = true; 
campoTxt.wordWrap = true; 
campoTxt.multiline = true; 

//xml 
var xml:XML = new XML(); 
xml.ignoreWhite = true; 
xml.load("http://rss.noticias.uol.com.br/ultnot/"); 
xml.onLoad = function(ok:Boolean){ 
if(ok){ 
//coloque aqui seu código pra ler xml 
//Crio variaveis pra receber nós xml 

//titulo blog 
var linkBlog:String = xml.firstChild.childNodes[0].childNodes[2].childNodes; 
var tituloBlog:String = xml.firstChild.childNodes[0].childNodes[0].childNodes; 

//conteudo 1 
var link1:String = xml.firstChild.childNodes[0].childNodes[7].childNodes[1].childNodes;; 
var titulo1:String = xml.firstChild.childNodes[0].childNodes[7].childNodes[0].childNodes; 
var data1:String = xml.firstChild.childNodes[0].childNodes[7].childNodes[3].childNodes; 

//conteudo 2 
var link2:String = xml.firstChild.childNodes[0].childNodes[8].childNodes[1].childNodes;; 
var titulo2:String = xml.firstChild.childNodes[0].childNodes[8].childNodes[0].childNodes; 
var data2:String = xml.firstChild.childNodes[0].childNodes[8].childNodes[3].childNodes; 

//conteudo 3 
var link3:String = xml.firstChild.childNodes[0].childNodes[9].childNodes[1].childNodes;; 
var titulo3:String = xml.firstChild.childNodes[0].childNodes[9].childNodes[0].childNodes; 
var data3:String = xml.firstChild.childNodes[0].childNodes[9].childNodes[3].childNodes; 


//mostra conteudo no campo de texto 
campoTxt.htmlText = "<a href='" + linkBlog + "' target='_blank'><b>" + tituloBlog +"</b></a><br><br>" + 
"<a href='" + link1 + "' target='_blank'><b>" + titulo1 + "</b></a><br />" + 
data1 + 
"<br /><br />" + 

"<a href='" + link2 + "' target='_blank'><b>" + titulo2 + "</b></a><br />" + 
data2 + 
"<br /><br />" + 

"<a href='" + link3 + "' target='_blank'><b>" + titulo3 + "</b></a><br />" + 
data3; 


}else{ 
trace("não carregou"); 
} 
}

 

3 - Dinamic text (campoTxt)

 

Pessoal é isso aí o que tenho e estou fritando a cabeça, se necessário mando o arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal pesquisando aqui tentei esse código abaixo, quando peço para ele pegar a informação na página raiz ele mostra o conteúdo quando é para pegar do servidor do ig ele não mostra, peço a ajuda de vocês pois estou com o projeto atrasado preciso apresentar amanhã, e sem isso terei problemas. Mas de qualquer forma agradeço desde já a atenção de vocês.

 

System.useCodepage = true;

//crio campo de texto pra receber xml
var campoTxt:TextField = this.createTextField("campoTxt", _root.getNextHighestDepth(), 0, 0, 20, 20);
campoTxt.autoSize = true;
campoTxt.multiline = true;
campoTxt.html = true;

var arquivo:XML = new XML();
arquivo.load("http://www.ig.com.br/IndexRSS.xml");
arquivo.ignoreWhite = true;
arquivo.onLoad = leiaXml;

function leiaXml(ok:Boolean):Void
{
   if(ok)
   {
       //string que recebe conteudo do xml
       var title:String = String(arquivo.firstChild.firstChild.childNodes[10].childNodes[0].childNodes);
       var link:String = String(arquivo.firstChild.firstChild.childNodes[10].childNodes[1].childNodes);
       var description:String = String(arquivo.firstChild.firstChild.childNodes[10].childNodes[2].childNodes);
       var pubDate:String = String(arquivo.firstChild.firstChild.childNodes[10].childNodes[3].childNodes);
       var guid:String = String(arquivo.firstChild.firstChild.childNodes[10].childNodes[4].childNodes);


       //aplico conteudo no campo de texto
       campoTxt.htmlText = title;
       campoTxt.htmlText += "<font color='#ff0000'><a href='"+ link +"' target='_blank'><u><b>"+ link +"</b></u></a></font>";;
       campoTxt.htmlText += description;
       campoTxt.htmlText += pubDate;
       campoTxt.htmlText += guid;

   }
   else{ trace("nao leu xml");}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o arquivo 'crossdomain.xml' teria que ficar no domínio onde você esta pegando os dados, e não no domínio onde esta o swf,

ou seja, quem precisa liberar acesso é o UOL ou o IG

 

mas tem uma maneira de bular isso, você faz o seu flash chamar uma página PHP/ASP(no seu servidor), e ela pega os dados

que estão nesse RSS e devolve para o seu flash isso,

 

dá uma pesquisada por flash proxy php , que tem uns exemplos por ai

 

 

[]´s

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.