E4X: utilizzare la stringa come nome dell'attributo nell'espressione?
-
03-07-2019 - |
Domanda
Ho una funzione che ha questa linea:
var returnString:String = items[0].@month;
@month è un attobute su un nodo XML in questo modo:
<xmlnode month="JAN"/>
OK, ma ho bisogno di astrarre il nome dell'attributo in modo da poter passare una stringa alla funzione e ottenere il contenuto dell'attributo con il nome corrispondente alla stringa che ho passato. Quindi, ad esempio, se chiamo la funzione come questa funzione (" stone ") restituisce gli elementi [0]. @ Stone. Spero sia chiaro.
Qualcuno sa come fare quello che sto cercando?
Grazie.
Soluzione
Dovrai usare l'attributo ('stone') piuttosto che @stone, è la stessa cosa, @stone è solo un modo abbreviato di scriverlo.
Altri suggerimenti
Puoi scrivere questo come:
var attrName:String = "month";
return items[0].@[ attrName ];
non solo, ma se mai vuoi assegnare un valore a un attributo usando una variabile per il nome dell'attributo, puoi farlo (anche se non è documentato) in questo modo:
public function setAttr(obj:XML, attrName:String, value:String):void{ obj.@[attrName] = value; }