题
我有奇怪的问题,我与谁具有从0到x的属性位置元素的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]);
第一个将工作,如图所示。第二个也将工作,如图所示。第三,但是,将失败,因为与位置== 3的节点没有一个孩子在指数1。请注意,这将工作...
c.(@size == 3).children()[1] = 'NEW test';
trace(c);
不隶属于 StackOverflow