E4X:在表达式中使用字符串作为属性名称?

时间:2009-04-29 20:48:18

标签: flex actionscript-3 e4x

我有一个包含这一行的函数:

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

@month是XML节点上的一个属性,如下所示:

<xmlnode month="JAN"/>

好的,但是我需要抽象属性名称,这样我就可以将一个字符串传递给函数,并获取属性的内容,其名称与我传递的字符串相匹配。所以例如,如果我像这个函数(“stone”)一样调用函数,它返回项[0]。@ stone。我希望这很清楚。

有谁知道我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:6)

你想要使用属性('stone')而不是@stone,它同样的东西,@ stone只是写它的简写方式。

答案 1 :(得分:2)

您可以将其写为:

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

答案 2 :(得分:2)

不仅如此,如果你想使用属性名称的变量为属性赋值,你可以这样做(尽管没有记录),如下所示:

  public function setAttr(obj:XML, attrName:String, value:String):void{
     obj.@[attrName] = value;
  }