Basicamente você pode fazer assim:
var nomeCampo:String;
var node:XML;
var myXML:XML = <usuarios></usuarios>;
nomeCampo = "usuario";
node = <{nomeCampo}/>;
myXML.appendChild(node);
nomeCampo = "endereco";
node = <{nomeCampo}/>;
myXML.appendChild(node);
/* Resultado:
<usuarios>
<usuario/>
<endereco/>
</usuarios>
*/
Um exemplo funcional um pouco mais avançado transforma uma lista de
objetos em XML:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="initializeHandler(event)">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
[Bindable]
private var myXML:XML;
private function initializeHandler(event:FlexEvent):void
{
var users:Array = [{name:"Beck Novaes",
email:"[EMAIL PROTECTED]"},
{name:"Albert
Einstein", email:"[EMAIL PROTECTED]"},
{name:"Bill Gates",
email:"[EMAIL PROTECTED]"},
{name:"Steve Jobs",
email:"[EMAIL PROTECTED]"}];
myXML = createUsersXML(users);
trace(myXML);
}
/**
* Pega um objeto da lista no formato:
* {name:"Beck Novaes", email:"[EMAIL PROTECTED]"}
*
* E retorna um XML do objeto no formato:
* <users>
* <user>
* <email>
* [EMAIL PROTECTED]
* </email>
* <name>
* Beck Novaes
* </name>
* </user>
* </users>
*/
private function createUsersXML(users:Array):XML
{
var usersXML:XML = <users></users>;
for each (var user:Object in users)
{
var userNode:XML = <user></user>;
for (var property:String in user)
{
userNode.appendChild(<{property}>{user[property]}</{property}>);
}
usersXML.appendChild(userNode);
}
return usersXML;
}
]]>
</mx:Script>
</mx:Application>
O segredo é esquecer o que você conhecer de manipulação de XML nas
outras tecnologias. O ActionScript 3 tem um negócio chamado E4X -
Ecma for XML. E isto muda um pouco a maneira de trabalhar com XML no
Flex. De fato, temos algo muito mais poderoso que pouca gente tira
proveito. Saiba mais em:
http://livedocs.adobe.com/flex/3/html/help.html?content=13_Working_with_XML_01.html
[]'s
Beck Novaes
On Oct 15, 12:50 am, Marcello Fontolan <[EMAIL PROTECTED]> wrote:
> Pessoal,
>
> Por exemplo, tenho uma variavel String com o conteúdo "usuario".
> Existe (imagino que sim) forma de atribuir um atributo xml usando o
> valor da variável?
>
> Exemplo (considerando que o & seria o caracter especial para isto)
>
> var nomeCampo:String = "usuario";
> xmlList.&nomeCampo = "João da Silva";
> nomeCampo = "endereco";
> xmlList.&nomeCampo = "Rua das Laranjeiras, 100";
>
> Minha lista...
>
> xmlList.usuario = "João da Silva"
> xmlList.endereco = "Rua das Laranjeiras, 100"
>
> abraços,
>
> Marcello
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---