Opa Andre!!!

Seguinte... a serializaçao (parsing) do XML para Object é feito internamente
pelo framework.
Nesse caso, ele faz uma simples verificacao:

Se existe vários nodes com o mesmo nome, dentro da mesma hierarquia, entao
ele cria um arraycollection com varios objetos.
Agora, se só exsite *UM NODE* ele cria um único Objeto e não uma lista de
objetos com um elemento.

Entao.. para evitar essa situação de erro no casting, faça o seguinte:
(pseudo-codigo, digitado direto aqui, teste para ver se realmente funciona)


// assertCollection é um método que vai tratar o resultado e devolver sempre
uma colecao:
private var assertCollection(param : *) : ArrayCollection {
  var result : ArrayCollection;

  if (param is ArrayCollection) { //poderia generalizar com ICollectionView
se quiser
    result = param;  //se ja é um arrayCollection, guarda-o no result
 } else {
   result = new ArrayCollection([param]); //adiciona o seu objeto dentro de
uma nova colecao
 }

return result; //ira retornar sempre uma colecao.

}


Agora no seu resultHandler vc faz:

private function handleResult(e:ResultEvent):void {
   var minhaColecao : ArrayCollection = *assertCollection*(e.result);
}


pronto... agora vc SEMPRE terá uma colecao! =D
Ou uma colecao de varios objetos (se o seu xml devolver assim) ou uma
colecao com UM Objeto dentro.



Espero ter ajudado, abraços!





2009/10/21 André Cocuroci <[email protected]>

>
> Obrigado pela dica, vou tentar fazer isso do link que vc me passou,
> porém em outro xml com root também tenho o mesmo problema citado
> acima:
>
> <?xml version="1.0" encoding="ISO-8859-1" ?>
> <detalhes>
>        <detalhe id='1'>
>                <estado>PR</estado>
>                <capital minimo='100'>1500</capital>
>                <interior minimo='500'>4500</interior>
>        </detalhe>
> </detalhes>
>
> Assim ele tá erro tb.
>
> On 21 out, 12:57, Gabriela Trindade Perry <[email protected]>
> wrote:
> > http://blog.dclick.com.br/2008/09/15/como-transformar-xml-em-arraycol...
> >
>


-- 
Mario Junior
Enterprise Java / Flex Architectures
Adobe Certified Expert Flex 3 with AIR

Sofshore Informática
http://www.sofshore.com.br
+55 (48) 3337 2003
Rua Pastor Willian Richard Schisler Filho 452 sl 102, 88034-100 Itacorubi
Florianopolis SC Brasil

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a