Nao descarto ideias, rs... vou verificar...

Valeu!

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

> **
>
>     Se não me engano, para esse ultimo exemplo que vc colocou: "(minha_var
> = meuxml.node.conteudo)... ou (meuxml.node.conteudo = minha_var )"
>     o "=" deve trabalhar com Strings para ambos os lados. (sem ser em
> base64, strings puras do AS mesmo)
>
>     Agora o que rola exatamente dentro da classe XML do flex...  aí eu já
> não posso te ajudar  hehe
>     Só uma outra idéia rápida: Quem sabe o que vc precisa não seja extender
> um HttpService e fazer nele a conversao do XML inteiro recebido? Aliás...
> um HttpService já usa umas conversões lá e deixa vc setar qual vc quer (acho
> que já passei por um treco desses uma vez navegando pelo codigo fonte do
> flex)
>     Enfim...  a ideia seria vc converter e desconverter o XML inteiro assim
> que recebesse/enviasse.
>
>     boa sorte aí,
>     - Luís
>
>
> Em 24/07/2011 09:30, Wemerson Couto Guimarães escreveu:
>
> 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
>> [email protected]
>> Mais opções estão disponíveis em 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
>
>
>  --
> 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
>



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