E4X:Использовать строку в качестве имени атрибута в выражении?

StackOverflow https://stackoverflow.com/questions/804195

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

<xmlnode month="JAN"/>

Хорошо, но мне нужно абстрагировать имя атрибута, чтобы я мог передать строку функции и получить содержимое атрибута с именем, соответствующим переданной мной строке.Так, например, если я вызываю функцию, подобную этой function("stone"), она возвращает элементы [0].@stone.Я надеюсь, что это понятно.

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

Спасибо.

Это было полезно?

Решение

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

Другие советы

Вы можете написать это следующим образом:

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

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

  public function setAttr(obj:XML, attrName:String, value:String):void{
     obj.@[attrName] = value;
  }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top