Невозможно назначить значение, не являющееся ссылкой

StackOverflow https://stackoverflow.com/questions/2120703

  •  22-09-2019
  •  | 
  •  

Вопрос

У меня странная проблема: у меня есть XMLList с элементами, у которых позиция атрибута от 0 до x.Когда я хочу добавить текст к элементу этого XMLList с помощью следующего оператора, я получаю сообщение об ошибке:

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

1050:Невозможно назначить значение, не являющееся ссылкой.

Что здесь не так?

Спасибо, Маркус

Это было полезно?

Решение

вам нужно быть немного более конкретным при работе с XMLLists.На самом деле вам нужно указать ему, какой элемент в списке вы хотите изменить, даже если вы отфильтровываете его только до 1.Это должно сделать это для вас:

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

Другие советы

Использование [0] в ответе invertedSpear на самом деле не ссылается на индекс 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