E4X: Utiliser la chaîne comme nom d'attribut dans l'expression?
-
03-07-2019 - |
Question
J'ai une fonction qui a cette ligne:
var returnString:String = items[0].@month;
@month est un attribut sur un nœud XML comme suit:
<xmlnode month="JAN"/>
OK, mais je dois résumer le nom de l'attribut pour pouvoir transmettre une chaîne à la fonction et obtenir le contenu de l'attribut avec le nom correspondant à la chaîne que j'ai transmise. Ainsi, par exemple, si j'appelle la fonction comme cette fonction ("stone"), elle renvoie les éléments [0]. @ Stone. J'espère que c'est clair.
Est-ce que quelqu'un sait comment faire ce que je recherche?
Merci.
La solution
Vous voudrez utiliser l'attribut ("pierre") plutôt que @stone, c'est la même chose, @stone n'est qu'un moyen abrégé de l'écrire.
Autres conseils
Vous pouvez l'écrire comme suit:
var attrName:String = "month";
return items[0].@[ attrName ];
Non seulement cela, mais si vous souhaitez jamais attribuer une valeur à un attribut en utilisant une variable pour le nom de l'attribut, vous pouvez le faire (bien que cela ne soit pas documenté) comme suit:
public function setAttr(obj:XML, attrName:String, value:String):void{ obj.@[attrName] = value; }