質問

次の行を持つ関数があります:

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

@monthは、次のようなXMLノードの属性です:

<xmlnode month="JAN"/>

OKですが、関数に文字列を渡して、渡した文字列に一致する名前の属性の内容を取得できるように、属性名を抽象化する必要があります。したがって、たとえば、この関数のような関数(&quot; stone&quot;)を呼び出すと、items [0]。@ stoneが返されます。これが明確であることを願っています。

誰が私が望んでいることをする方法を知っていますか?

ありがとう。

役に立ちましたか?

解決

@stoneではなく、attribute( '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