Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Vida

[Resolvido] Dificuldade em receber Valores de XML no Flash

Recommended Posts

Boa tarde meus caros!

 

Como vão?E Espero que muito bem!

 

Estou tentando desenvolver um leitor RSS em Flash...Só que estou tendo dificuldade em receber corretamente os seus valores e seus referentes nós dentro da estrutura hierarquia do XML.

Necessito receber cada informação de forma separada em seus devidos movie clips e caixa de texto. Segue abaixo o meu código AS e a estrutura do XML.

 

//Habilita o sistema de caracters especial
System.useCodepage = true;
//Cria uma nova variável para o XML
var sports:XML = new XML();
//Carrega o XML e seu link.
sports.load("http://link/conteudo.xml"); 
//Ignora possíveis espaços em branco.
sports.ignoreWhite = true;
// Após o carregamento mostra na saida os conteúdos
sports.onLoad = function(success) {
 trace(sports.childNodes[0].nodeName);
 trace(sports.firstChild.childNodes[0].nodeName); 
 trace(sports.firstChild.firstChild.childNodes[1]);

//carrega o conteúdo no dinamic text instanciado de mytext.
mytext.text = (sports.firstChild.firstChild.childNodes[3]);
};

 

<rss version="2.0"> 
<channel> 
	<title>Titulo 1</title> 
	<description>Origem</description> 
	<link>Link</link> 
	<language>pt-br</language> 
 
    
	<item> 
		<title>Noticia 1</title> 
		<description>Conteúdo da Notícia 1</description> 
		<linkfoto>Foto da Noticia 1</linkfoto> 
		<creditfoto>Credito da Foto 1</creditfoto> 
		<pubdate></pubdate> 
	</item> 
		
	<item> 
		<title>Noticia 2</title> 
		<description>Conteúdo da Notícia 2</description> 
		<linkfoto>Foto da Noticia 2</linkfoto> 
		<creditfoto>Credito da Foto 2</creditfoto> 
		<pubdate></pubdate> 
	</item>
</channel> 
</rss>

Bom galera, até consigo puxar por exemplo o nome no titulo mas o mesmo vem com as marcações do xml, não consigo só puxar o conteúdo. Sem contar que quando há muito texto não há quebra de linha. Sem contar que não sei como puxar a notícia 2 ao invés da 1 ou ateh mesmo fazer com que apos um tempo carregue da 1 para a 2 por exemplos...

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos por partes:

 

...até consigo puxar por exemplo o nome no titulo mas o mesmo vem com as marcações do xml...

se as tags aparecem, você tem que usar mais um childNodes até chegar no texto

 

//pega só o titulo da noticia um:
mytext.text = (sports.firstChild.firstChild.childNodes[4].childNodes[0].childNodes[0].nodeValue);

 

...Sem contar que quando há muito texto não há quebra de linha...

 

para resolver isso, deixe a sua caixa de texto, com a opção "behavior" como "multi-line"

 

 

...Sem contar que não sei como puxar a notícia 2 ao invés da 1...

no primeiro childNodes, você começa a pegar a partir do numero 4, que é onde começa as tags das noticias:

 

// noticia 1

mytext.text = (sports.firstChild.firstChild.childNodes[4].childNodes[0].childNodes[0].nodeValue);

// noticia 2

mytext2.text = (sports.firstChild.firstChild.childNodes[5].childNodes[0].childNodes[0].nodeValue);

 

 

...fazer com que apos um tempo carregue da 1 para a 2 por exemplos...

 

dá uma pesquisada pela por setInterval

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Eder, muito obrigado mais uma vez!

 

Consegui puxar dessa vez corretamente as informações dos XML, inclusive adiquiri este final de semana uma livro sobre XML para que possa aprofundar mais os meus conhecimentos.

 

Mas gostaria de tirar mais uma dúvida. Estou tendo dificuldade e puxar a imagem para dentro do Movie Clip. Estou tentando através do loadMovie, sendo que já tentei todos atributos do mesmo.

Sendo assim quando gero o swf o flash fala que não foi possível abrir a url (Error opening URL 'http://link/foto.jpg'). Gostaria de saber se no caso tenho que colocar aspas e como as coloco da forma correta sem que transforme a "sports.firstChild.firstChild.childNodes[4].childNodes[2].childNodes[0].nodeValue" em texto.

 

Segue meu codigo:

 

//Puxa imagem
 img.loadMovie(sports.firstChild.firstChild.childNodes[4].childNodes[2].childNodes[0].nodeValue);

Obrigado mais uma vez. Precisando estamos ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta o link no XML?

 

se estiver assim:

 

<linkfoto>link/foto.jpg</linkfoto>

 

 

então o codigo esta certo, tente ver se a foto esta na pasta "link" como diz no caminho

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder na verdade eu puxo a imagem de outro lugar...no lugar de link possui um link completo, coloquei dessa maneira para poder encurta-ló, já que o mesmo é bem grande, mas a imagem está dentro do diretório corretamente. Mas depois que você me alertou sobre isso, fiz alguns teste e verifiquei e url muito grande ele não consegue abrir, não sei se tem algum limite de caracters.

Fiz um teste com um link menor e deu certo.

 

Aproveitando a o tópico na montagem dos meus arquivos para ler os RSS alguns dos RSS possui tags html ou quebra e espaços, sendo assim ele só le a primeira linha. como faço para exibir o restante do conteúdo:

 

- <rss version="2.0">
<channel>
  <title>Assunto</title> 
  <description>Data Atual</description> 
 <item>
  <title>Data</title> 
<description>
  Hora: 16:07:18 
  <br /> 
  Dia: 15/03
  <br /> 
  Ano : 2010
  <br /> 
  </description>
  <pubDate></pubDate> 
  </item>
  </channel>
  </rss>

Neste caso só consigo trazer a hora, como faço para trazer o restantes dos dados.

 

Obrigado mais um vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o correto seria colocar esse conteudo que tem tags, como o <br>

 

dentro de um CDATA, já uma pesquisada para ver como fazer

 

ai depois, é só jogar na propriedade caixa.htmlText, da caixa de texto,

 

no lugar da caixa.text

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Eder.

 

Infelizmente não consegui obter as informações que desejo. No caso o XML será de um link externo, ou seja irei pegar ele pronto, sendo assim não tem como edita-ló. Procurei algumas informações sobre o CDATA e pelo o que vi ele traz a ideia de "blocos" de texto. (Não sei se estar correto mas encontrei poucas definições sobre o mesmo). Tentei pegar informações de um outro xml mas sem sucesso tb e este possui CDATA atribuir a ele as funções que me indicou e modifiquei as propriedades da caixa para redenrizar html, porém não deu certo. Caso tenha alguma maneira de processar corretamente esses dados eu agradeceria. Peço desculpas pelo fato de não saber como lhe dar direito com Flash e XML, agora que estou dando uma aprofundada nos dois!

 

Muito obrigado.

 

Segue o link do XML:

http://clientes.climatempo.com.br/RSS/capitais.xml

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

deve ter faltado habilitar o esse formato:

 

 

caixa.html = true;
caixa.htmlText = sports.firstChild........................

 

testa ai para ver

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Eder,

 

Desculpa a demora por um retorno. Agora consegui acessar as informações que deseja inclusive fazendo a formatação HTML, peço desculpas por qualquer coisas, mas na verdade estava com dificuldade em associar o nó correto a informação desejada.

 

Muito obrigado mesmo.

 

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.