Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Leles

Trazendo dados em XML p/ o Flash

Recommended Posts

Pessoal, muito boa tarde

 

Mesmo após uma pesquisa, não consegui encontrar uma referência aqui no fórum para a minha dúvida. Como não sou um usuário avançado do Flash, esbarrei no seguinte problema:

Estou tentando trazer o campo marcado em verde no seguinte arquivo XML (RSS) - http://rodrigoleles.com/teste/xml-info.jpg, que está localizado neste link - http://feeds.feedburner.com/ClickonSoPaulosFacebookWall?format=xml.

 

No Flash, estou usando o seguinte código:

 

function loadXML(loaded) {
	if (loaded) {
		_root.inventor = this.firstChild.firstChild.childNodes[0].firstChild.nodeValue;
		name_txt.text = _root.inventor;
	} else {
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("http://feeds.feedburner.com/ClickonSoPaulosFacebookWall?format=xml");

No entanto, o campo de texto não me retorna o texto correto (no caso, ele traz o título do feed). Tentei várias alterações na sintaxe dos "nodes" e "childs", mas sem sucesso. Alguém saberia me dizer como chegar ao caminho correto no arquivo XML?

 

Desde já, muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

To aqui no trabalho, ainda vou olhar direito.. mas pelo que vi, ainda tem muitos nós após o titulo q você achou ai até chegar no q você procura...

 

Daqui a pouco eu faço um teste aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

To aqui no trabalho, ainda vou olhar direito.. mas pelo que vi, ainda tem muitos nós após o titulo q você achou ai até chegar no q você procura...

 

Daqui a pouco eu faço um teste aqui...

 

Valeu mesmo cara, tentei fazer alguns pulos mas realmente não entendi a lógica para percorrer as tags do XML... Por isso achei melhor perguntar pra quem entende.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quer saber como o XML funciona??

Ou tu quer saber só como pegar os dados?

 

Porque se queres entender como funciona basta você dar trace(this) dentro da sua função loadXML

 

Ai o que acontece XML tem a seguinte regra:

root
 node
 	subnode /subnode
 /node
/root

Ou seja o root seria a raiz de seu XML os NODE seriam os nós no qual você vai percorrer pelo conteúdo.

E o SUBNODE seria um filho do NODE no qual pode conter conteúdos diferentes

 

Então se você quer pegar algo que esta dentro do NODE teria que fazer algo como:

this.firstChild.childNodes[0].childNodes
Ou

this.firstChild.childNodes[0].firstChild.nodeValue

Agora se você quer o valor do que ta dentro do SUBNODE fica algo assim:

this.firstChild.childNodes[0].childNodes[0].childNodes
ou

this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue

Ai o que você vai ter que fazer para pegar o que quer... é navegar dentro dos nodes...

Eu sugiro que você vá dando trace buscando a informação que você quer.

 

Trace se usa assim:

trace("Hello World") 
ou

var str:String = new String("Hello World");
trace(str);

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, bom dia

 

Consegui acessar o arquivo XML "Puro", sem os estilos que escondem um pouco a ordem dos nodes. Coloquei aqui a última versão: http://rodrigoleles.com/teste/clickon-xml-ok.xml.

O que preciso trazer é apenas o texto do primeiro item, ou seja, o que está dentro do primeiro <item><title>.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi berseck, bom dia

 

Desculpe, quando postei minha mensagem anterior a sua ainda não havia aparecido. Acabei de ler e vou aplicar o que você informou aqui para ver o que acontece. Retorno aqui pra falar do resultado, ok?

 

Muito obrigado!

 

Oi berserck

 

Consegui avançar um pouco com a importação dessa informação aqui. Eu estava utilizando um link criado pelo Feedburner pq (teoricamente) ele era mais amigável para o AS2, uma vez que trazia mais claramente o arquivo XML, que originalmente é este: http://www.facebook.com/feeds/page.php?format=atom10&id=130255313683908) um mural do Facebook.

Ao pesquisar em como tratar isso com AS3, a sintaxe me pareceu mais lógica, e consegui dar um trace() em todo o conteúdo usando estes códigos:

 

var myXML:XML;
var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("http://www.facebook.com/feeds/page.php?format=atom10&id=130255313683908"));
myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
myXML = new XML(e.target.data);
trace(myXML);
}

No entando, não consegui avançar para o nodes entry / title, que é onde está a informação que preciso. Isso tem algo a ver com o fato de ser um feed no formato ATOM?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou algo assim com AS3?

 

trace('Title: ' + feed.entry[0].title[0]);

Abraços

 

Oi cara. É provável que eu tenha omitido algo pra esse código funcionar, mas trocando...

 

trace(myXML);

por...

 

trace('Title: ' + feed.entry[0].title[0]);

Recebi o seguinte erro: Scene 1, Layer 'as', Frame 1, Line 7 1120: Access of undefined property entry. Tem ideia do que pode ter ocorrido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu considerei que seu XML name fosse feed e por isso coloquei isso...

Você deveria trocar pelo nome do seu XML...

 

Da uma olhada na parte do forum de AS 3 tem um tutorial de AS 3 basics por onde começar feito pelo EDER, é bem explicado

Link para a parte que ele explica o XML

http://forum.imasters.com.br/index.php?/topic/246610-actionscript-3-0/page__p__866327entry866327

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala berseck, boa tarde

 

Obrigado pelo ajuda. Optei por uma outra alternativa de feed, desta vez uma que realmente me trouxe o arquivo XML, e consegui fazer funcionar com AS2 mesmo.

 

function loadXML(loaded) {
	if (loaded) {
		_root.feed = this.firstChild.childNodes[0].childNodes[2].firstChild.nodeValue;
		feed_txt.text = _root.feed;
	} else {
		content = "file not loaded!";
	}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("http://twitter.com/statuses/user_timeline/140203557.xml");

Agora me restou uma última dúvida: Ao usar o campo de texto dinâmico, o Flash me pede para dar um EMBED nas fontes. Fiz isso e localmente funciona perfeitamente, mas ao subir o SWF para o servidor o texto não aparece. Alguma dica?

 

Abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Twitter não é carregado assim...

 

Twitter em seu computador ele vai carregar no servidor não.

Tem que usar a API dele ou CURL

 

Da uma olhada em como fazer isso em meu blog ou na parte de artigos e tutoriais.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, consegui encontrar os caminhos fazendo um trajeto totalmente inverso, mas funcionou! Estou formulando um tópico com essa solução aqui para que ninguém tenha que passar por esse parto novamente, rs.

 

Abraços!

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.