Caetano, ops... @Luiz Eduardo...  (Ou não né?) rs....

Então, a questão das strings... já me derrubou com isso... não dá pra ficar
fazendo cast toda hora... vai poluir o código.

Eu tava querendo fazer isso direto já no "=", ou seja... no momento que um
valor é requisitado ou setado... (minha_var = meuxml.node.conteudo)... ou
(meuxml.node.conteudo = minha_var ) justamente pra dar um ar mais
"elegante", sem precisar de funções extras expostas para fazer isso..

Mas pelo jeito o mais correto aqui seria criar funções internas na classe
para set/get dos valores...


Só uma dúvida:
No momento que seta um valor para um xml atraves do "=", o que é executado
dentro da classe XML?



Em 24 de julho de 2011 04:32, Luis Eduardo <[email protected]>escreveu:

>
>
>    Oi Wemerson,
>
>    Cara...  o problema me parece ser puramente algorítmico e não
> tecnológico. (digo.. a tecnologia pra fazer isso vc já tem pronta, tratar
> xml em flex puro).
>    Veja se um algoritmo assim pode te dar umas idéias pra resolver esse
> pipino:
>
> supondo que o XML que chega do back-end tenha apenas filhos de um nível (ou
> seja, <root><noum></noum><nodois></**nodois>...</root>):
>
> ------------------------------**-------
> ...para cada nó fazer:
> ......para cada atributo do nó fazer:
> .........checa se o objeto que receberá o valor tem o nó/atributo   (essa
> parte poderia ser pulada no caso de vc querer setar um valor via dicionário
> no objeto automaticamente
> .........cria/seta o valor no objeto source com o valor do base64encode()
> ------------------------------**------
> se o objeto destino for um Object, é só setar a variável na tóra (pq Object
> é igual Dictionary pra setar variável "on the fly"). Mas vc corre o risco de
> dar pau dependendo do que vier no XML e dependendo do que é o Object destino
> e de como vc o usa.
>
> supondo que o XML do back-end possa ter hierarquia (filhos dos filhos), aí
> vc vai precisar de uma função recursiva que recebe como parametro o Object e
> um nó XML a ser digerido.
> ------------------------------**---
> função digere(Object obj, XML xml) {
> ...para cada nó do xml fazer:
> ......para cada atributo do nó fazer:
> .........checa se o objeto que recebera o valor tem o nó/atributo   (essa
> parte poderia ser pulada no caso de vc querer setar um valor via dicionario
> no objeto automaticamente
> .........cria/seta o valor no objeto source com o valor do base64encode()
> ......digere(obj, xml.filhos)    (ou seja, chama a propria funcao digere
> passando a lista de filhos do nó atual. Assim vc vai andar pela árvore
> digerindo ela.)
> }
>
> e depois para chamar essa funcao faz
> ...para cada nó desse mesmo nivel do XMLList (q provavelmente vai ser o
> root a primeira vez) fazer:
> ......digere(obj, xml);
> ------------------------------**---
>
> Em C++ existe a sobrecarga de operadores, não me lembro com certeza se
> ActionScript tb tem isso (acho q sim), já faz um tempo que não programo em
> flex.
> De qualquer forma usando a sobrecarga de operadores iria só dar um ar mais
> profissional mas no final das contas vc ia precisar fazer quase o mesmo
> código de "digestão" na definição da sobrecarga.
>
> Uma última observação: trabalhar do jeito que vc quer, todas as variaveis
> serão sempre Strings, correto?  se chegar um valor no XML de -23.45 ele será
> substituido pela string "-23.45" no objeto destino. Idem para booleanos e
> afins. Isso pode te dar o trabalho de ter que ficar fazendo cast por todo o
> codigo quando vc for usar a variavel, o que seria provavelmente um trabalho
> até maior do que tratar na mão a conversão acima.  A solução nesse caso
> seria de trazer junto com o valor o tipo dele e assim vc poderia fazer um
> casting automatico la na funcao digere()... Mas no final das contas vc vai
> estar implementando na unha, tudo de novo, o que o AMF já faz com a
> serialização e deserialização de objetos.
> Como dizia Mopheus do matrix: "I will show you how deep the rabbit hole
> goes".  ;)
>
> Bom...  só pra não terminar o email de forma tão pessimista... se teu XML
> que chegar for simples e se vc já for usar as variáveis sempre como string
> pelo resto do código...  então só o primeiro bloquinho de código ja deve te
> resolver o problema  hehe
>
> (ou não)
>
>
> abraços,
> - Luís
>
>
>
> Em 20/07/2011 17:44, Wemerson Couto Guimarães escreveu:
>
>  Opa... nenhum... só flex 3 direto.
>>
>> Todos os nomes de nodes e os labels devem permanecer inalterados... só
>> quero alterar o conteúdo..
>>
>> só que em vez de fazer algo do tipo: meuxml.node.valor = base64encode('meu
>> valor'), ou meuxml.node.@label = base64encode('meu valor')...
>>
>> Fazer a atribuição de valores direta, e a classe xml extendida já fazer a
>> conversão internamente... algo como:
>>
>> meuxml_extendido.node.valor = 'meu valor', ou meuxml_extendido.node.@label= 
>> 'meu valor'...
>>
>> no uso da aplicação seria transparente, pois os valores ao serem setados
>> são codificados e quando precisarem ser mostrados, seriam decodificados... o
>> detalhe mesmo seria só na hora de gravar esse xml no disco para que o mesmo
>> ficasse armazenado nos meus arquivos xml com os valores codificados...
>>
>>
>>
>>
> --
> 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 flexdev-unsubscribe@**
> googlegroups.com <[email protected]>
> Mais opções estão disponíveis em 
> http://groups.google.com/**group/flexdev<http://groups.google.com/group/flexdev>
>



-- 
*Wemerson Guimarães*
Rio Verde - Go

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