E4X: Use string como nome do atributo na expressão?
-
03-07-2019 - |
Pergunta
Eu tenho uma função que tem esta linha:
var returnString:String = items[0].@month;
@month é um attibute em um nó XML assim:
<xmlnode month="JAN"/>
OK, mas eu preciso abstrair o nome do atributo para que eu possa passar uma string para a função e obter o conteúdo do atributo com o nome encontrando a string eu passei. Assim, por exemplo Se eu chamar a função como esta função ( "pedra") ele retorna itens [0]. @ Pedra. Espero que este é clara.
Alguém sabe como fazer o que eu sou depois?
Graças.
Solução
Você vai querer atributo uso ( 'pedra') em vez de @stone, é a mesma coisa, @stone é apenas uma forma abreviada de escrevê-lo.
Outras dicas
Você pode escrever isto como:
var attrName:String = "month";
return items[0].@[ attrName ];
Não só isso, mas se você quiser atribuir um valor a um atributo usando uma variável para o nome do atributo, você pode fazer isso (embora não está documentado) assim:
public function setAttr(obj:XML, attrName:String, value:String):void{ obj.@[attrName] = value; }