我有奇怪的问题,我与谁具有从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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top