E4X:式の属性名として文字列を使用しますか?
-
03-07-2019 - |
質問
次の行を持つ関数があります:
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; }
所属していません StackOverflow