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
-~----------~----~----~----~------~----~------~--~---