E4X: Использовать строку в качестве имени атрибута в выражении? - PullRequest
2 голосов
/ 30 апреля 2009

У меня есть функция, которая имеет эту строку:

var returnString:String = items[0].@month;

@ month относится к узлу XML следующим образом:

<xmlnode month="JAN"/>

ОК, но мне нужно абстрагировать имя атрибута, чтобы я мог передать строку функции и получить содержимое атрибута с именем, совпадающим с переданной мной строкой. Так, например, если я вызываю функцию, подобную этой функции («камень»), она возвращает items [0]. @ Stone. Надеюсь, это понятно.

Кто-нибудь знает, как делать то, что я после?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 30 апреля 2009

Вы захотите использовать атрибут ('stone') вместо @stone, это то же самое, @stone - просто краткий способ его записи.

2 голосов
/ 13 июля 2009

не только это, но если вы когда-нибудь захотите присвоить атрибуту значение, используя переменную для имени атрибута, вы можете сделать это (хотя это не задокументировано) следующим образом:

  public function setAttr(obj:XML, attrName:String, value:String):void{
     obj.@[attrName] = value;
  }
2 голосов
/ 01 июля 2009

Вы можете написать это как:

var attrName:String = "month";
return items[0].@[ attrName ];
...