Ir para conteúdo
Fórum Script Brasil
  • 0

AS3+XML - leitura de xml aleatorio indefinidamente (laco while)


fredrabelo

Pergunta

Seguinte galera,

pretendo fazer um api para leitura de qualquer xml, independente de numero de nos, filhos, nome ou atributos.

Eu basicamente já consegui fazer quase tudo apartir de um tutorial que segui.

O problema é que meu sisteminha so consegue chegar até o quarto nível de um xml. Isto porque foi usado 3 fors aninhados no actionscript.

exemplo de como está:

for ($i=0; $i<MeuXML.firstChild.childNodes.length; $i++) {

for ($x=0; $x<MeuXML.firstChild.childNodes[$i].childNodes.length; $x++){

[...]

}

}

Mas não é isto que quero.

Quero que enquanto haja filhos, um laco WHILE(HOUVER FILHOS) va executando e entrando, criando novos childNodes[].childNodes.childNodes[] ...

indefinidamente.

Este é examente o meu problema, como fazer ele ir entrando indefinidamente nos nos.

Sou novo em AS, apesar de programar a bastante tempo com C e C++ e a sintaxe ser parecida.

Obrigado a quem ajudar!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá amigo!

Bom não sei bem a sua utilidade com relação a isso porém temos o seguinte...

no AS3 já existe suporte à xml incluse uma variavel chamada XML exemplo:

var meuXML:XML = new XML(XMLSource);

e para carregar um xml externo também temos um processo com Loader etc...

Então não é vamos dizer muito útil o que queres fazer.

Mas....se a pergunta é sobre nós é simples e espero que essa seja a ultima vez que faça isso JAMAIS repito JAMAIS utilize WHILE no AS. o Flash está muito sujeito a loops infinito devido a sua dinamicidade.

Se quer fazer um loop faça um loop com funções;

function bla(){ Faça algo.... if(condição){ bla();/*Aqui você faz o loop da função*/ } }

no seu caso em palavras seria

function retornaChilds(){

verifica se existe alguma child no XML atual

se existir, atribui ela a alguma variavel ou a alguma matriz;

subistitui seu XML pela posição atual exemplo:

XML = XML.firstChild;

repita a função

retornaChild();

}

faça uma condicional para ele so repetir se achar alguma child. simples

Qualquer duvida é so falar...

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...