質問

私は奇妙な問題を抱えている、私はxに0から属性の位置を持っている要素を持つXMLListを持っています。私は次のステートメントによってその値XMLListの要素にテキストを追加したい場合は、私はエラーメッセージが表示されます:

textElements.(@position == columnIndex) = "anyString";
  

1050:非基準値に割り当てることができません。

タグ?ここで何が問題になっています

のおかげで マルクス

役に立ちましたか?

解決

あなたはXMLListsを扱うもう少し具体的でなければなりません。あなたが実際にそれを伝える必要がありますが、変化に欠けているリスト、あなただけの1にそれを絞り込む場合でも、これがあなたのためにそれを行う必要があります内のどの項目:

textElements.(@position==columnIndex)[0]= "anyString";

他のヒント

invertedSpearによって回答に[0]を使用することは、実際のXMLListインデックスを参照していない、それは選択されたノードのアクセスに子の位置を示しています。比較のために

textElements.(@position==columnIndex).appendChild("anyString");

このはinvertedSpearの答えと同じことを行いますが、むしろインデックスによって直接の子ノードにアクセスするよりも、選択したノードに子を追加します。ノードが存在する場合、常に子供がこの場合には、自ノードの値を参照し、利用可能な0で索引付けがあります。

次のことを考えてみます:

var xml:XML = <root><node position="1" /><node position="2" /><node position="3" ><subnode>Test1</subnode><subnode>Test2</subnode></node></root>;

var c:XMLList = xml.children();
trace(c);

c.(@position == 1)[0] = "first test";
c.(@position == 2).appendChild("SECOND TEST");
c.(@position == 3)[1] = 'FINAL_test';

trace(c); 
trace(c[0][0]);

最初のものは、図示のように、動作します。示すように、第2の1はまた、動作します。位置にノードが== 3は、これが動作することをインデックス1に注意してください...

の子を持っていないため、第三は、しかし、失敗します。
c.(@size == 3).children()[1] = 'NEW test';
trace(c);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top