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

Dúvida com XML e AS 2


ClaudioGavinho

Pergunta

Bom dia.

Estou começando a trabalhar com XML no Flash. Li vários artigo e tutoriais na internet, mas esbarrei com um problema e não estou conseguindo achar a solução.

O xml é esse:

-----------------------------------------------------------------------

<Grid>

<Documento>

<Codigo>Codigo 1</Codigo>

<Titulo>Titulo 1</Titulo>

<Revisao>Revisao 1</Revisao>

</Documento>

<Documento>

<Codigo>Codigo 2</Codigo>

<Titulo>Titulo 2</Titulo>

<Revisao>Revisao 2</Revisao>

</Documento>

<Documento>

<Codigo>Codigo 3</Codigo>

<Titulo>Titulo 3</Titulo>

<Revisao>Revisao 3</Revisao>

</Documento>

</Grid>

---------------------------------------------------------------------------

O AS é esse:

---------------------------------------------------------------------------

System.useCodepage = true;

var documentos:XML = new XML();

documentos.ignoreWhite = true;

documentos.load("TesteXML2.xml");

documentos.onLoad = function(success) {

if(success) {

var docs:Number = documentos.firstChild.childNodes.length;

var node = documentos.firstChild.childNodes;

for(var i = 0; i<docs; i++) {

//trace(node.childNodes[0].firstChild.nodeValue);

//trace(node.childNodes[1].firstChild.nodeValue);

//trace(node.childNodes[2].firstChild.nodeValue);

Codigo.text = node.childNodes[0].firstChild.nodeValue;

Titulo.text = node.childNodes[1].firstChild.nodeValue;

Revisao.text = node.childNodes[2].firstChild.nodeValue;

}

}

};

-------------------------------------------------------------------------------

Sendo que Codigo, Titulo e Revisao são text boxes.

Quando eu testo com o trace (comentado no código), funciona sem problemas. Mas quando uso o "Codigo.text", "Titulo.text" e o "Revisao.text" só são mostrados os últimos ítens (Codigo 3, Titulo 3, Revisao 3). E é isso que preciso.

É isso. Agradeço qualquer ajuda.

Abs,

Claudio

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá meu caro :)

vosso código não deveria estár funcionando nem no trace.

você definiiu "node" como var node = documentos.firstChild.childNodes;

ou seja node agora é um childNodes.

childNodes é uma array o que faz de node agora uma array.

para acessá-lo --> node[x] aonde X é o documento que busca (em vosso caso de 0~2);

além disso, para que usaste a variável i ?

bom se queres apenas o primeiro "documento" não necessitas dele.

então para se ter acesso correto é preciso mudar levemente o código:

vosso i só será útil em 1 trace ou em uma list

for(var i = 0; i<docs; i++) {
trace(node[i].childNodes[0].firstChild.nodeValue);
trace(node[i].childNodes[1].firstChild.nodeValue);
trace(node[i].childNodes[2].firstChild.nodeValue);
}
Assim tudo será mostrado porém se queres apenas o primeiro "documento"
Codigo.text = node[0].childNodes[0].firstChild.nodeValue;
Titulo.text = node[0].childNodes[1].firstChild.nodeValue;
Revisao.text = node[0].childNodes[2].firstChild.nodeValue;

agora deveria funcionar ^_^

Abraços

Pooh

Editado por Pooh
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...