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
